From 7828331329a85cd872117ed482689599dee2322d Mon Sep 17 00:00:00 2001 From: Akira Hatanaka Date: Sat, 3 Nov 2012 00:26:02 +0000 Subject: [PATCH] [mips] Set flag isAsCheapAsAMove flag on instruction LUi. llvm-svn: 167345 --- llvm/lib/Target/Mips/MipsInstrInfo.td | 2 +- llvm/test/CodeGen/Mips/remat-immed-load.ll | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Target/Mips/MipsInstrInfo.td b/llvm/lib/Target/Mips/MipsInstrInfo.td index 3f6cebd..3319553 100644 --- a/llvm/lib/Target/Mips/MipsInstrInfo.td +++ b/llvm/lib/Target/Mips/MipsInstrInfo.td @@ -421,7 +421,7 @@ class shift_rotate_reg func, bits<5> isRotate, string instr_asm, // Load Upper Imediate class LoadUpper op, string instr_asm, RegisterClass RC, Operand Imm>: FI { + !strconcat(instr_asm, "\t$rt, $imm16"), [], IIAlu>, IsAsCheapAsAMove { let rs = 0; let neverHasSideEffects = 1; let isReMaterializable = 1; diff --git a/llvm/test/CodeGen/Mips/remat-immed-load.ll b/llvm/test/CodeGen/Mips/remat-immed-load.ll index e4548f8..d93964b 100644 --- a/llvm/test/CodeGen/Mips/remat-immed-load.ll +++ b/llvm/test/CodeGen/Mips/remat-immed-load.ll @@ -24,3 +24,28 @@ entry: } declare void @foo2(i64) + +define void @f5() nounwind { +entry: +; 32: lui $4, 1 +; 32: lui $4, 1 + + tail call void @f6(i32 65536) nounwind + tail call void @f6(i32 65536) nounwind + ret void +} + +declare void @f6(i32) + +define void @f7() nounwind { +entry: +; 64: lui $4, 1 +; 64: lui $4, 1 + + tail call void @f8(i64 65536) nounwind + tail call void @f8(i64 65536) nounwind + ret void +} + +declare void @f8(i64) + -- 2.7.4