[PATCH] D19825: Power9 - Add exploitation of vector load and store that do not require swaps

Eric Christopher via llvm-commits llvm-commits at lists.llvm.org
Tue May 3 14:15:17 PDT 2016


echristo added a comment.

Few inline comments.

Thanks!

-eric


================
Comment at: lib/Target/PowerPC/PPCISelLowering.cpp:10527
@@ -10526,2 +10526,3 @@
     // For little endian, VSX stores require generating xxswapd/lxvd2x.
+    // Not needed on P9 since we have a load that lines things up correctly.
     EVT VT = N->getOperand(1).getValueType();
----------------
This comment and the isISA3_0 don't quite match up. At least I'm assuming that there may be more isa3.0 processors other than power9? If not, then why the feature :)

It also seems like this could be factored in a different way since you replicate it a bunch of times.

================
Comment at: lib/Target/PowerPC/PPCInstrVSX.td:2159
@@ +2158,3 @@
+
+  let AddedComplexity = 500 in {
+    def : Pat<(v2f64 (load xoaddr:$src)), (LXVX xoaddr:$src)>;
----------------
nemanjai wrote:
> I'll add to the readme that patterns can be added to emit lxvd2x and friends in cases where we happen to want the elements in the reverse order (i.e. something like the vec_xl use as well as if the load is followed by a vector_shuffle that will reverse the elements).
Eh? What's with the AddedComplexity here?


Repository:
  rL LLVM

http://reviews.llvm.org/D19825





More information about the llvm-commits mailing list