Implement 64 bit immediates
authorAnton Korobeynikov <asl@math.spbu.ru>
Thu, 16 Jul 2009 14:07:06 +0000 (14:07 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Thu, 16 Jul 2009 14:07:06 +0000 (14:07 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75982 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SystemZ/SystemZInstrInfo.td

index 67ae9c2722ad54f9fdbb8bb7eb6396db0ba3b162..8969bdfe0b65e3a15fb248f5720ba1afac7806b5 100644 (file)
@@ -703,6 +703,10 @@ def : Pat<(i64 (anyext GR32:$src)),
 
 // FIXME: use add/sub tricks with 32678/-32768
 
+// Arbitrary immediate support.  Implement in terms of LLIHF/OILF.
+def : Pat<(i64 imm:$imm),
+          (OR64rilo32 (MOV64rihi32 (HI32 imm:$imm)), (LO32 imm:$imm))>;
+
 // trunc patterns
 def : Pat<(i32 (trunc GR64:$src)),
           (EXTRACT_SUBREG GR64:$src, subreg_32bit)>;