[llvm-commits] CVS: llvm/lib/Target/X86/X86InstrInfo.td X86TargetMachine.cpp

Evan Cheng evan.cheng at apple.com
Thu Jan 19 15:26:36 PST 2006



Changes in directory llvm/lib/Target/X86:

X86InstrInfo.td updated: 1.213 -> 1.214
X86TargetMachine.cpp updated: 1.92 -> 1.93
---
Log message:

Added i16 SH{L|R}D patterns.


---
Diffs of the changes:  (+13 -3)

 X86InstrInfo.td      |   14 ++++++++++++--
 X86TargetMachine.cpp |    2 +-
 2 files changed, 13 insertions(+), 3 deletions(-)


Index: llvm/lib/Target/X86/X86InstrInfo.td
diff -u llvm/lib/Target/X86/X86InstrInfo.td:1.213 llvm/lib/Target/X86/X86InstrInfo.td:1.214
--- llvm/lib/Target/X86/X86InstrInfo.td:1.213	Thu Jan 19 00:53:20 2006
+++ llvm/lib/Target/X86/X86InstrInfo.td	Thu Jan 19 17:26:24 2006
@@ -3068,12 +3068,22 @@
 def : Pat<(shl R16:$src1, (i8 1)), (ADD16rr R16:$src1, R16:$src1)>;
 def : Pat<(shl R32:$src1, (i8 1)), (ADD32rr R32:$src1, R32:$src1)>;
 
-// (or (x >> c) | (y << (32 - c))) ==> (shrd x, y, c)
+// (or (x >> c) | (y << (32 - c))) ==> (shrd32 x, y, c)
 def : Pat<(or (srl R32:$src1, CL:$amt),
               (shl R32:$src2, (sub 32, CL:$amt))),
           (SHRD32rrCL R32:$src1, R32:$src2)>;
 
-// (or (x << c) | (y >> (32 - c))) ==> (shld x, y, c)
+// (or (x << c) | (y >> (32 - c))) ==> (shld32 x, y, c)
 def : Pat<(or (shl R32:$src1, CL:$amt),
               (srl R32:$src2, (sub 32, CL:$amt))),
           (SHLD32rrCL R32:$src1, R32:$src2)>;
+
+// (or (x >> c) | (y << (16 - c))) ==> (shrd16 x, y, c)
+def : Pat<(or (srl R16:$src1, CL:$amt),
+              (shl R16:$src2, (sub 16, CL:$amt))),
+          (SHRD16rrCL R16:$src1, R16:$src2)>;
+
+// (or (x << c) | (y >> (16 - c))) ==> (shld16 x, y, c)
+def : Pat<(or (shl R16:$src1, CL:$amt),
+              (srl R16:$src2, (sub 16, CL:$amt))),
+          (SHLD16rrCL R16:$src1, R16:$src2)>;


Index: llvm/lib/Target/X86/X86TargetMachine.cpp
diff -u llvm/lib/Target/X86/X86TargetMachine.cpp:1.92 llvm/lib/Target/X86/X86TargetMachine.cpp:1.93
--- llvm/lib/Target/X86/X86TargetMachine.cpp:1.92	Tue Dec 20 16:59:51 2005
+++ llvm/lib/Target/X86/X86TargetMachine.cpp	Thu Jan 19 17:26:24 2006
@@ -48,7 +48,7 @@
   cl::opt<bool, true> EnableX86DAGDAG("enable-x86-dag-isel", cl::Hidden,
                       cl::desc("Enable DAG-to-DAG isel for X86"),
                       cl::location(X86DAGIsel),
-                      cl::init(false));
+                      cl::init(true));
   
   // FIXME: This should eventually be handled with target triples and
   // subtarget support!






More information about the llvm-commits mailing list