]> granicus.if.org Git - llvm/commit
[X86][SSE] Disable shouldFoldConstantShiftPairToMask for btver1/btver2 targets (PR40758)
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 26 Apr 2019 10:49:13 +0000 (10:49 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 26 Apr 2019 10:49:13 +0000 (10:49 +0000)
commitcc6487ed56360ed72e4bf3eab0fa1affc3fde18c
tree3a03066d34f21a5101dc098cf3a48b5563a04fdd
parent8a0d120e5262b28a37504de7b596aeb5d1a1802f
[X86][SSE] Disable shouldFoldConstantShiftPairToMask for btver1/btver2 targets (PR40758)

As detailed on PR40758, Bobcat/Jaguar can perform vector immediate shifts on the same pipes as vector ANDs with the same latency - so it doesn't make sense to replace a shl+lshr with a shift+and pair as it requires an additional mask (with the extra constant pool, loading and register pressure costs).

Differential Revision: https://reviews.llvm.org/D61068

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359293 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
lib/Target/X86/X86.td
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86Subtarget.h
test/CodeGen/X86/sse2-vector-shifts.ll