[PATCH] D20443: [PowerPC] - Legalize illegal vector types by widening rather than integer promotion

Hal Finkel via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 4 05:48:54 PDT 2016


hfinkel accepted this revision.
hfinkel added a comment.
This revision is now accepted and ready to land.

I apologize for the delay. Some minor requests below, but otherwise, LGTM.


================
Comment at: lib/Target/PowerPC/PPCISelLowering.h:141
@@ +140,3 @@
+      /// Extract a subvector from signed integer vector and convert to FP
+      SINT_VEC_TO_VEC,
+
----------------
This name does not make it clear that you're converting to FP values. Let's name these SINT_VEC_TO_FP and UINT_VEC_TO_FP. Also note there that this is used for illegal vector types.

================
Comment at: lib/Target/PowerPC/PPCISelLowering.h:443
@@ +442,3 @@
+    /// legalized by promoting the integer element type is much worse than code
+    /// we generate if we widen the type for applicable vectory types.
+    TargetLoweringBase::LegalizeTypeAction getPreferredVectorAction(EVT VT)
----------------
Can you say something about why it is worse. N years from now someone will wonder whether this is still true ;)

================
Comment at: lib/Target/PowerPC/PPCInstrVSX.td:72
@@ -68,1 +71,3 @@
 def PPCmtvsrz : SDNode<"PPCISD::MTVSRZ", SDTUnaryOp, []>;
+def PPCSV2V : SDNode<"PPCISD::SINT_VEC_TO_VEC", SDTVecConv, []>;
+def PPCUV2V : SDNode<"PPCISD::UINT_VEC_TO_VEC", SDTVecConv, []>;
----------------
The existing naming convention here seems to have lower-case latter parts. Not sure why, but we might as well follow it for now.

  def PPCsvec2fp : ...
  def PPCuvec2fp : ...


Repository:
  rL LLVM

http://reviews.llvm.org/D20443





More information about the llvm-commits mailing list