Skip to content

Commit 52ced14

Browse files
committed
Revert D143786 "[X86] Add TuningPreferShiftShuffle for when Shifts are preferable to shuffles."
This reverts commit a98ee27. It caused MemorySanitizer use-of-uninitialized-value in matchUnaryPermuteShuffle.
1 parent 9266edf commit 52ced14

File tree

7 files changed

+267
-826
lines changed

7 files changed

+267
-826
lines changed

llvm/lib/Target/X86/X86.td

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -550,12 +550,6 @@ def TuningNoDomainDelayShuffle : SubtargetFeature<"no-bypass-delay-shuffle",
550550
"NoDomainDelayShuffle","true",
551551
"Has no bypass delay when using the 'wrong' shuffle type">;
552552

553-
// Prefer lowering shuffles on AVX512 targets (e.g. Skylake Server) to
554-
// imm shifts/rotate if they can use more ports than regular shuffles.
555-
def TuningPreferShiftShuffle : SubtargetFeature<"faster-shift-than-shuffle",
556-
"PreferLowerShuffleAsShift", "true",
557-
"Shifts are faster (or as fast) as shuffle">;
558-
559553
// On some X86 processors, a vzeroupper instruction should be inserted after
560554
// using ymm/zmm registers before executing code that may use SSE instructions.
561555
def TuningInsertVZEROUPPER
@@ -928,7 +922,6 @@ def ProcessorFeatures {
928922
TuningPOPCNTFalseDeps,
929923
TuningInsertVZEROUPPER,
930924
TuningAllowLight256Bit,
931-
TuningPreferShiftShuffle,
932925
TuningNoDomainDelayMov,
933926
TuningNoDomainDelayShuffle,
934927
TuningNoDomainDelayBlend];

llvm/lib/Target/X86/X86ISelLowering.cpp

Lines changed: 100 additions & 195 deletions
Large diffs are not rendered by default.

llvm/lib/Target/X86/X86TargetTransformInfo.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ class X86TTIImpl : public BasicTTIImplBase<X86TTIImpl> {
9292
X86::TuningNoDomainDelayMov,
9393
X86::TuningNoDomainDelayShuffle,
9494
X86::TuningNoDomainDelayBlend,
95-
X86::TuningPreferShiftShuffle,
9695

9796
// Perf-tuning flags.
9897
X86::TuningFastGather,

llvm/test/CodeGen/X86/avx512-hadd-hsub.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ define i32 @hadd_16(<16 x i32> %x225) {
1616
; SKX: # %bb.0:
1717
; SKX-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[2,3,2,3]
1818
; SKX-NEXT: vpaddd %xmm1, %xmm0, %xmm0
19-
; SKX-NEXT: vpsrlq $32, %xmm0, %xmm1
19+
; SKX-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[1,1,1,1]
2020
; SKX-NEXT: vpaddd %xmm1, %xmm0, %xmm0
2121
; SKX-NEXT: vmovd %xmm0, %eax
2222
; SKX-NEXT: vzeroupper
@@ -43,7 +43,7 @@ define i32 @hsub_16(<16 x i32> %x225) {
4343
; SKX: # %bb.0:
4444
; SKX-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[2,3,2,3]
4545
; SKX-NEXT: vpaddd %xmm1, %xmm0, %xmm0
46-
; SKX-NEXT: vpsrlq $32, %xmm0, %xmm1
46+
; SKX-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[1,1,1,1]
4747
; SKX-NEXT: vpsubd %xmm1, %xmm0, %xmm0
4848
; SKX-NEXT: vmovd %xmm0, %eax
4949
; SKX-NEXT: vzeroupper

0 commit comments

Comments
 (0)