[llvm-commits] [llvm] r144554 - /llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td

Akira Hatanaka ahatanaka at mips.com
Mon Nov 14 11:06:14 PST 2011


Author: ahatanak
Date: Mon Nov 14 13:06:14 2011
New Revision: 144554

URL: http://llvm.org/viewvc/llvm-project?rev=144554&view=rev
Log:
32-to-64-bit extended load.


Modified:
    llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td

Modified: llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td?rev=144554&r1=144553&r2=144554&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td (original)
+++ llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td Mon Nov 14 13:06:14 2011
@@ -219,11 +219,16 @@
 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]>;
-def : Pat<(zextloadi32_u addr:$a), (DSRL32 (DSLL32 (ULW64 addr:$a), 0), 0)>,
-      Requires<[NotN64]>;
+// extended loads
+let Predicates = [NotN64] in {
+  def : Pat<(extloadi32_a addr:$a), (DSRL32 (DSLL32 (LW64 addr:$a), 0), 0)>;
+  def : Pat<(zextloadi32_u addr:$a), (DSRL32 (DSLL32 (ULW64 addr:$a), 0), 0)>;
+}
+let Predicates = [IsN64] in {
+  def : Pat<(extloadi32_a addr:$a), (DSRL32 (DSLL32 (LW64_P8 addr:$a), 0), 0)>;
+  def : Pat<(zextloadi32_u addr:$a), 
+            (DSRL32 (DSLL32 (ULW64_P8 addr:$a), 0), 0)>;
+}
 
 // hi/lo relocs
 def : Pat<(i64 (MipsLo tglobaladdr:$in)), (DADDiu ZERO_64, tglobaladdr:$in)>;





More information about the llvm-commits mailing list