]> granicus.if.org Git - llvm/commit
Revert rL356864 : [X86][SSE41] Start shuffle combining from ZERO_EXTEND_VECTOR_INREG...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 27 Mar 2019 10:25:02 +0000 (10:25 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 27 Mar 2019 10:25:02 +0000 (10:25 +0000)
commitfc9fa6d51453a7dede4e0dd19a9d4e4bb7898523
tree2c65a7e609f399824655ce7c5ef6cb2e2215d5d8
parent650dceb82e23fc742651506ad3576930e9bd05e9
Revert rL356864 : [X86][SSE41] Start shuffle combining from ZERO_EXTEND_VECTOR_INREG (PR40685)

Enable SSE41 ZERO_EXTEND_VECTOR_INREG shuffle combines - for the PMOVZX(PSHUFD(V)) -> UNPCKH(V,0) pattern we reduce the shuffles (port5-bottleneck on Intel) at the expense of creating a zero (pxor v,v) and an extra register move - which is a good trade off as these are pretty cheap and in most cases it doesn't increase register pressure.

This also exposed a missed opportunity to use combine to ZERO_EXTEND_VECTOR_INREG with folded loads - even if we're in the float domain.
........
Causes PR41249

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357057 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/cast-vsel.ll
test/CodeGen/X86/combine-pmuldq.ll
test/CodeGen/X86/combine-shl.ll
test/CodeGen/X86/pmul.ll
test/CodeGen/X86/psubus.ll
test/CodeGen/X86/slow-pmulld.ll
test/CodeGen/X86/vec_int_to_fp.ll
test/CodeGen/X86/vector-idiv-udiv-128.ll
test/CodeGen/X86/vector-pcmp.ll
test/CodeGen/X86/vector-reduce-umax.ll
test/CodeGen/X86/vector-reduce-umin.ll
test/CodeGen/X86/vector-shift-shl-sub128.ll
test/CodeGen/X86/vector-zext.ll