OSDN Git Service

[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)
commit36cdca7eefc049f922236a9d06b23df947c40333
treea571d639e04712b0743868610d8a22e2cd8e25ed
parent8f78249219722388d60d42c2cae008af333bd611
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@347158 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/pmul.ll
test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll
test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.ll
test/CodeGen/X86/vector-shuffle-combining-avx512vbmi.ll
test/CodeGen/X86/vector-shuffle-combining.ll
test/CodeGen/X86/vector-trunc-math-widen.ll
test/CodeGen/X86/vector-trunc-math.ll