[PATCH] [AArch64] Change default legalization behavior of v1i32 to be widen to v2i32 instead of scalarization

Matt Arsenault Matthew.Arsenault at amd.com
Wed Jul 2 13:51:32 PDT 2014


================
Comment at: lib/Target/R600/SIISelLowering.cpp:274-280
@@ -273,4 +273,9 @@
 
-bool SITargetLowering::shouldSplitVectorType(EVT VT) const {
-  return VT.getScalarType().bitsLE(MVT::i16);
+TargetLoweringBase::LegalizeTypeAction
+SITargetLowering::getPreferredVectorAction(EVT VT) const {
+  if (VT.getVectorNumElements() == 1)
+    return TypeScalarizeVector;
+  if (VT.getScalarType().bitsLE(MVT::i16))
+    return TypeSplitVector;
+  return TypePromoteInteger;
 }
----------------
I think this should be TypeSplitVector for any vector > 128 bits, and TypePromoteInteger for scalar types < 32-bits and no more than 4 elements. I can take care of that later though

http://reviews.llvm.org/D4322






More information about the llvm-commits mailing list