[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)
commit5d6ef94c369a3ea804d8377f16ba8878160bd9a6
treec0e2d5896961dabe274f9d136051971f2b553007
parent5e161df9f8999c7570fdf9477d51d33a3e288f5a
[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

llvm-svn: 359293
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/lib/Target/X86/X86.td
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86Subtarget.h
llvm/test/CodeGen/X86/sse2-vector-shifts.ll