[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