[PATCH] D17691: [X86][SSE] Improve vector ZERO_EXTEND by combining to ZERO_EXTEND_VECTOR_INREG
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sun Feb 28 06:54:35 PST 2016
RKSimon added a comment.
In http://reviews.llvm.org/D17691#363782, @delena wrote:
> I assume that BITCAST does not allow combining "zext" with "select" .
Yes, I've just done a repro using vector shuffle - the bitcast seems to be the problem (and is why we don't see it with the VSEXT case). I can raise a bugzilla describing this if you want me to.
It looks the best option for now is only use this combine for certain non-legal ZERO_EXTEND cases - I'll update it shortly.
I wonder whether X86ISD::VZEXT / X86ISD::VSEXT are that useful or whether we should try to implement the PMOVZX/PMOVSX instructions with a mixture of ZERO/SIGN_EXTEND and ZERO/SIGN_EXTEND_VECTOR_INREG - I've looked at this in the past but haven't pursued it recently, IIRC there were problems with memory folding.
More information about the llvm-commits