[PATCH] [PowerPC] Add vec_vsx_ld and vec_vsx_st intrinsics

hfinkel at anl.gov hfinkel at anl.gov
Tue Nov 11 00:30:09 PST 2014


With updates as noted, LGTM.

================
Comment at: lib/Target/PowerPC/PPCInstrVSX.td:58
@@ -57,3 +57,3 @@
                          "lxvd2x $XT, $src", IIC_LdStLFD,
-                         [(set v2f64:$XT, (load xoaddr:$src))]>;
+                         [(set v2f64:$XT, (int_ppc_vsx_lxvd2x xoaddr:$src))]>;
 
----------------
FYI: Changing these, I believe, is what is changing the schedule. The matching pattern order treats patterns attached to instructions in a different order from free patterns (and the inferred attributes could also be different -- although they shouldn't be in this case).

================
Comment at: lib/Transforms/InstCombine/InstCombineCalls.cpp:621
@@ +620,3 @@
+                                        PointerType::getUnqual(II->getType()));
+    return new LoadInst(Ptr);
+  }
----------------
This will create a load with the default alignment, but that's not right. These need to be align 1.

Also, you're missing tests for these.

================
Comment at: lib/Transforms/InstCombine/InstCombineCalls.cpp:639
@@ +638,3 @@
+    Value *Ptr = Builder->CreateBitCast(II->getArgOperand(1), OpPtrTy);
+    return new StoreInst(II->getArgOperand(0), Ptr);
+  }
----------------
(Same comments as above)

http://reviews.llvm.org/D6143






More information about the llvm-commits mailing list