[PATCH] D99418: [AArch64][SVE] Improve codegen for select nodes with fixed types
Paul Walker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 31 02:53:25 PDT 2021
paulwalker-arm added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:7023
+ MVT PredVT = MVT::getVectorVT(SplatValVT, Ty.getVectorElementCount());
+ SDValue SplatVal = DAG.getAnyExtOrTrunc(CCVal, DL, SplatValVT);
+ SDValue SplatPred = DAG.getNode(ISD::SPLAT_VECTOR, DL, PredVT, SplatVal);
----------------
Is this safe? I know for larger than NEON vectors we'll truncate the mask and thus only care about the bottom bit, however, you're tests show that for NEON sized vectors `bif` is used and so every bit of the mask is meaningful. I believe this is because it expects the mask to be extended based on `setBooleanVectorContents(ZeroOrNegativeOneBooleanContent)`. Which means a sign extend must be used here to maintain that requirement?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D99418/new/
https://reviews.llvm.org/D99418
More information about the llvm-commits
mailing list