64-bit arbitrary immediate pattern.
authorAkira Hatanaka <ahatanaka@mips.com>
Sat, 12 Nov 2011 02:25:00 +0000 (02:25 +0000)
committerAkira Hatanaka <ahatanaka@mips.com>
Sat, 12 Nov 2011 02:25:00 +0000 (02:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144448 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Mips/Mips64InstrInfo.td

index 608c271ea6be55c9c1ffa65ae0283417754c7acd..51b9bf988463b6daf55c30f7df731b2bab4ff4ba 100644 (file)
@@ -215,6 +215,10 @@ def : Pat<(i64 immSExt16:$in),
 def : Pat<(i64 immZExt16:$in),
           (ORi64 ZERO_64, imm:$in)>;
 
+// Arbitrary immediates
+def : Pat<(i64 imm:$imm),
+          (ORi64 (LUi64 (HI16 imm:$imm)), (LO16 imm:$imm))>;
+
 // zextloadi32_u
 def : Pat<(zextloadi32_u addr:$a), (DSRL32 (DSLL32 (ULW64_P8 addr:$a), 0), 0)>,
       Requires<[IsN64]>;