[PATCH] D148185: Add more efficient bitwise vector reductions on AArch64
Markus Everling via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 15 04:36:58 PDT 2023
Sp00ph added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:13252
+ SDValue Extended =
+ DAG.getAnyExtOrTrunc(Vec, DL, VecVT.changeVectorElementType(MVT::i8));
+ switch (ScalarOpcode) {
----------------
Using either zext or sext here adds a few extra instructions in the generated code. Is it guaranteed that any-extending an i1 vector results in a vector whose elements are all either 0 or -1? It seems reasonable because afaik mask vector elements on AArch64 are always either 0 or -1, but it could also introduce some subtle incorrectness if there is some case where any-extending an i1 vector does not result in such a mask vector.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D148185/new/
https://reviews.llvm.org/D148185
More information about the llvm-commits
mailing list