[llvm-dev] vector wideing for vector SETCC / VSELECT
Jonas Paulsson via llvm-dev
llvm-dev at lists.llvm.org
Thu Jan 26 07:54:58 PST 2017
Hi Eli (and all),
There is on SystemZ a similar problem to that of the sext/zext
operations on partial vectors, that we just handled with vector
widening. The same problem of many useless instructions happen with
vector compare / select instructions if the vector registers only
contain a few elements.
This seems a bit trickier. I tried to return TypeWidenVector in
getPreferredVectorAction() for vectors of i1s, but this didn't seem to
work at all - this actually ended up giving TypeSplitVector for the v2i1
vector, which resulted in an infinite loop even.
So I wanted to say "if doing a vector compare & select, just work with
the full registers" (vector widening).
I don't have any idea what to do other than trying to do something
custom or so. Does anyone have any advice to give on this?
More information about the llvm-dev