aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineOperand.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2020-03-26 19:59:37 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2020-03-26 19:59:57 +0000
commit39a52a19ed0206e0ebd1530f881f79a1511a2299 (patch)
tree40b5ada50b8723cac65dfdd0bb975efe9c3704ff /llvm/lib/CodeGen/MachineOperand.cpp
parentf9e71f4d9d39871390da48207d7fd6b116e370dc (diff)
downloadllvm-39a52a19ed0206e0ebd1530f881f79a1511a2299.zip
llvm-39a52a19ed0206e0ebd1530f881f79a1511a2299.tar.gz
llvm-39a52a19ed0206e0ebd1530f881f79a1511a2299.tar.bz2
[X86] lowerV16I8Shuffle - create v8i16 mask for PACKUS(AND(),AND()) patterns.
We can improve computeKnownBits results by avoiding excess bitcasts. For this pattern we were doing: (v16i8 PACKUS(v8i16 BITCAST(v16i8 AND(V1, MASK)), v8i16 BITCAST(v16i8 AND(V2, MASK)))) By performing the MASK/AND with a v8i16 type and bitcasting V1/V2 directly we can help computeKnownBits see that the mask is clearing the upper bits and allows shuffle combining to peek through later on. This will be necessary to extend rG9d1721ce3926 to AVX2+ targets in a future patch.
Diffstat (limited to 'llvm/lib/CodeGen/MachineOperand.cpp')
0 files changed, 0 insertions, 0 deletions