[X86][SSE] Use raw shuffle mask decode in SimplifyDemandedVectorEltsForTargetNode...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 18 Nov 2018 13:34:53 +0000 (13:34 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 18 Nov 2018 13:34:53 +0000 (13:34 +0000)
commitcc1f5d24073a8e796805622e705b2eb84a8f1f22
treef28475e30ec3b1afc7e15a4c329409d1919596bc
parent45beaa0bb9330ec1a519f001a54555bee1638840
[X86][SSE] Use raw shuffle mask decode in SimplifyDemandedVectorEltsForTargetNode (PR39549)

We were using the 'normalized' shuffle mask from resolveTargetShuffleInputs, which replaces zero/undef inputs with sentinel values. For SimplifyDemandedVectorElts we need the raw mask so we can correctly demand those 'zero' inputs that got normalized away, this requires an extra bit of logic to locally normalize undef inputs.

llvm-svn: 347158
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/pmul.ll
llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll
llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.ll
llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi.ll
llvm/test/CodeGen/X86/vector-shuffle-combining.ll
llvm/test/CodeGen/X86/vector-trunc-math-widen.ll
llvm/test/CodeGen/X86/vector-trunc-math.ll