[PATCH] D58567: [LegalizeTypes][AArch64][X86] Make type legalization of vector (S/U)ADD/SUB/MULO follow getSetCCResultType for the overflow bits. Make UnrollVectorOverflowOp properly convert from scalar boolean contents to vector boolean contents

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Feb 23 01:10:35 PST 2019


nikic added a comment.

Sorry for the incorrect unrolling, really messed up there.



================
Comment at: lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp:605
+  // Convert to the expected type.
+  return DAG.getSExtOrTrunc(Res.getValue(1), dl, NVT);
 }
----------------
Should this be `getBoolExtOrTrunc()`?


================
Comment at: lib/CodeGen/SelectionDAG/SelectionDAG.cpp:8987
 
-  SDVTList VTs = getVTList(ResEltVT, OvEltVT);
+  EVT SVT = TLI->getSetCCResultType(getDataLayout(), *getContext(), ResEltVT);
+  SDVTList VTs = getVTList(ResEltVT, SVT);
----------------
With this change, you should be able to drop the size check that I added in X86ISelLowering::LowerXALUO().


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58567/new/

https://reviews.llvm.org/D58567





More information about the llvm-commits mailing list