Skip to content

Commit 5c181a9

Browse files
committed
[X86] update vector shift lowering tests to take poison arg instead of undef
1 parent 2a18162 commit 5c181a9

13 files changed

+114
-114
lines changed

llvm/test/CodeGen/X86/vector-shift-ashr-128.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,7 @@ define <2 x i64> @splatvar_shift_v2i64(<2 x i64> %a, <2 x i64> %b) nounwind {
689689
; X86-SSE-NEXT: pxor %xmm2, %xmm0
690690
; X86-SSE-NEXT: psubq %xmm2, %xmm0
691691
; X86-SSE-NEXT: retl
692-
%splat = shufflevector <2 x i64> %b, <2 x i64> undef, <2 x i32> zeroinitializer
692+
%splat = shufflevector <2 x i64> %b, <2 x i64> poison, <2 x i32> zeroinitializer
693693
%shift = ashr <2 x i64> %a, %splat
694694
ret <2 x i64> %shift
695695
}
@@ -738,7 +738,7 @@ define <4 x i32> @splatvar_shift_v4i32(<4 x i32> %a, <4 x i32> %b) nounwind {
738738
; X86-SSE-NEXT: movss {{.*#+}} xmm2 = xmm1[0],xmm2[1,2,3]
739739
; X86-SSE-NEXT: psrad %xmm2, %xmm0
740740
; X86-SSE-NEXT: retl
741-
%splat = shufflevector <4 x i32> %b, <4 x i32> undef, <4 x i32> zeroinitializer
741+
%splat = shufflevector <4 x i32> %b, <4 x i32> poison, <4 x i32> zeroinitializer
742742
%shift = ashr <4 x i32> %a, %splat
743743
ret <4 x i32> %shift
744744
}
@@ -787,7 +787,7 @@ define <8 x i16> @splatvar_shift_v8i16(<8 x i16> %a, <8 x i16> %b) nounwind {
787787
; X86-SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
788788
; X86-SSE-NEXT: psraw %xmm1, %xmm0
789789
; X86-SSE-NEXT: retl
790-
%splat = shufflevector <8 x i16> %b, <8 x i16> undef, <8 x i32> zeroinitializer
790+
%splat = shufflevector <8 x i16> %b, <8 x i16> poison, <8 x i32> zeroinitializer
791791
%shift = ashr <8 x i16> %a, %splat
792792
ret <8 x i16> %shift
793793
}
@@ -924,7 +924,7 @@ define <16 x i8> @splatvar_shift_v16i8(<16 x i8> %a, <16 x i8> %b) nounwind {
924924
; X86-SSE-NEXT: pxor %xmm2, %xmm0
925925
; X86-SSE-NEXT: psubb %xmm2, %xmm0
926926
; X86-SSE-NEXT: retl
927-
%splat = shufflevector <16 x i8> %b, <16 x i8> undef, <16 x i32> zeroinitializer
927+
%splat = shufflevector <16 x i8> %b, <16 x i8> poison, <16 x i32> zeroinitializer
928928
%shift = ashr <16 x i8> %a, %splat
929929
ret <16 x i8> %shift
930930
}
@@ -1008,7 +1008,7 @@ define <2 x i64> @splatvar_modulo_shift_v2i64(<2 x i64> %a, <2 x i64> %b) nounwi
10081008
; X86-SSE-NEXT: psubq %xmm2, %xmm0
10091009
; X86-SSE-NEXT: retl
10101010
%mod = and <2 x i64> %b, <i64 63, i64 63>
1011-
%splat = shufflevector <2 x i64> %mod, <2 x i64> undef, <2 x i32> zeroinitializer
1011+
%splat = shufflevector <2 x i64> %mod, <2 x i64> poison, <2 x i32> zeroinitializer
10121012
%shift = ashr <2 x i64> %a, %splat
10131013
ret <2 x i64> %shift
10141014
}
@@ -1050,7 +1050,7 @@ define <4 x i32> @splatvar_modulo_shift_v4i32(<4 x i32> %a, <4 x i32> %b) nounwi
10501050
; X86-SSE-NEXT: psrad %xmm1, %xmm0
10511051
; X86-SSE-NEXT: retl
10521052
%mod = and <4 x i32> %b, <i32 31, i32 31, i32 31, i32 31>
1053-
%splat = shufflevector <4 x i32> %mod, <4 x i32> undef, <4 x i32> zeroinitializer
1053+
%splat = shufflevector <4 x i32> %mod, <4 x i32> poison, <4 x i32> zeroinitializer
10541054
%shift = ashr <4 x i32> %a, %splat
10551055
ret <4 x i32> %shift
10561056
}
@@ -1092,7 +1092,7 @@ define <8 x i16> @splatvar_modulo_shift_v8i16(<8 x i16> %a, <8 x i16> %b) nounwi
10921092
; X86-SSE-NEXT: psraw %xmm1, %xmm0
10931093
; X86-SSE-NEXT: retl
10941094
%mod = and <8 x i16> %b, <i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15>
1095-
%splat = shufflevector <8 x i16> %mod, <8 x i16> undef, <8 x i32> zeroinitializer
1095+
%splat = shufflevector <8 x i16> %mod, <8 x i16> poison, <8 x i32> zeroinitializer
10961096
%shift = ashr <8 x i16> %a, %splat
10971097
ret <8 x i16> %shift
10981098
}
@@ -1234,7 +1234,7 @@ define <16 x i8> @splatvar_modulo_shift_v16i8(<16 x i8> %a, <16 x i8> %b) nounwi
12341234
; X86-SSE-NEXT: psubb %xmm2, %xmm0
12351235
; X86-SSE-NEXT: retl
12361236
%mod = and <16 x i8> %b, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>
1237-
%splat = shufflevector <16 x i8> %mod, <16 x i8> undef, <16 x i32> zeroinitializer
1237+
%splat = shufflevector <16 x i8> %mod, <16 x i8> poison, <16 x i32> zeroinitializer
12381238
%shift = ashr <16 x i8> %a, %splat
12391239
ret <16 x i8> %shift
12401240
}

llvm/test/CodeGen/X86/vector-shift-ashr-256.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -732,7 +732,7 @@ define <4 x i64> @splatvar_shift_v4i64(<4 x i64> %a, <4 x i64> %b) nounwind {
732732
; X86-AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm0
733733
; X86-AVX2-NEXT: vpsubq %ymm2, %ymm0, %ymm0
734734
; X86-AVX2-NEXT: retl
735-
%splat = shufflevector <4 x i64> %b, <4 x i64> undef, <4 x i32> zeroinitializer
735+
%splat = shufflevector <4 x i64> %b, <4 x i64> poison, <4 x i32> zeroinitializer
736736
%shift = ashr <4 x i64> %a, %splat
737737
ret <4 x i64> %shift
738738
}
@@ -794,7 +794,7 @@ define <8 x i32> @splatvar_shift_v8i32(<8 x i32> %a, <8 x i32> %b) nounwind {
794794
; X86-AVX2-NEXT: vpmovzxdq {{.*#+}} xmm1 = xmm1[0],zero,xmm1[1],zero
795795
; X86-AVX2-NEXT: vpsrad %xmm1, %ymm0, %ymm0
796796
; X86-AVX2-NEXT: retl
797-
%splat = shufflevector <8 x i32> %b, <8 x i32> undef, <8 x i32> zeroinitializer
797+
%splat = shufflevector <8 x i32> %b, <8 x i32> poison, <8 x i32> zeroinitializer
798798
%shift = ashr <8 x i32> %a, %splat
799799
ret <8 x i32> %shift
800800
}
@@ -856,7 +856,7 @@ define <16 x i16> @splatvar_shift_v16i16(<16 x i16> %a, <16 x i16> %b) nounwind
856856
; X86-AVX2-NEXT: vpmovzxwq {{.*#+}} xmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero
857857
; X86-AVX2-NEXT: vpsraw %xmm1, %ymm0, %ymm0
858858
; X86-AVX2-NEXT: retl
859-
%splat = shufflevector <16 x i16> %b, <16 x i16> undef, <16 x i32> zeroinitializer
859+
%splat = shufflevector <16 x i16> %b, <16 x i16> poison, <16 x i32> zeroinitializer
860860
%shift = ashr <16 x i16> %a, %splat
861861
ret <16 x i16> %shift
862862
}
@@ -998,7 +998,7 @@ define <32 x i8> @splatvar_shift_v32i8(<32 x i8> %a, <32 x i8> %b) nounwind {
998998
; X86-AVX2-NEXT: vpxor %ymm1, %ymm0, %ymm0
999999
; X86-AVX2-NEXT: vpsubb %ymm1, %ymm0, %ymm0
10001000
; X86-AVX2-NEXT: retl
1001-
%splat = shufflevector <32 x i8> %b, <32 x i8> undef, <32 x i32> zeroinitializer
1001+
%splat = shufflevector <32 x i8> %b, <32 x i8> poison, <32 x i32> zeroinitializer
10021002
%shift = ashr <32 x i8> %a, %splat
10031003
ret <32 x i8> %shift
10041004
}
@@ -1096,7 +1096,7 @@ define <4 x i64> @splatvar_modulo_shift_v4i64(<4 x i64> %a, <4 x i64> %b) nounwi
10961096
; X86-AVX2-NEXT: vpsubq %ymm2, %ymm0, %ymm0
10971097
; X86-AVX2-NEXT: retl
10981098
%mod = and <4 x i64> %b, <i64 63, i64 63, i64 63, i64 63>
1099-
%splat = shufflevector <4 x i64> %mod, <4 x i64> undef, <4 x i32> zeroinitializer
1099+
%splat = shufflevector <4 x i64> %mod, <4 x i64> poison, <4 x i32> zeroinitializer
11001100
%shift = ashr <4 x i64> %a, %splat
11011101
ret <4 x i64> %shift
11021102
}
@@ -1159,7 +1159,7 @@ define <8 x i32> @splatvar_modulo_shift_v8i32(<8 x i32> %a, <8 x i32> %b) nounwi
11591159
; X86-AVX2-NEXT: vpsrad %xmm1, %ymm0, %ymm0
11601160
; X86-AVX2-NEXT: retl
11611161
%mod = and <8 x i32> %b, <i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31>
1162-
%splat = shufflevector <8 x i32> %mod, <8 x i32> undef, <8 x i32> zeroinitializer
1162+
%splat = shufflevector <8 x i32> %mod, <8 x i32> poison, <8 x i32> zeroinitializer
11631163
%shift = ashr <8 x i32> %a, %splat
11641164
ret <8 x i32> %shift
11651165
}
@@ -1222,7 +1222,7 @@ define <16 x i16> @splatvar_modulo_shift_v16i16(<16 x i16> %a, <16 x i16> %b) no
12221222
; X86-AVX2-NEXT: vpsraw %xmm1, %ymm0, %ymm0
12231223
; X86-AVX2-NEXT: retl
12241224
%mod = and <16 x i16> %b, <i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15>
1225-
%splat = shufflevector <16 x i16> %mod, <16 x i16> undef, <16 x i32> zeroinitializer
1225+
%splat = shufflevector <16 x i16> %mod, <16 x i16> poison, <16 x i32> zeroinitializer
12261226
%shift = ashr <16 x i16> %a, %splat
12271227
ret <16 x i16> %shift
12281228
}
@@ -1369,7 +1369,7 @@ define <32 x i8> @splatvar_modulo_shift_v32i8(<32 x i8> %a, <32 x i8> %b) nounwi
13691369
; X86-AVX2-NEXT: vpsubb %ymm1, %ymm0, %ymm0
13701370
; X86-AVX2-NEXT: retl
13711371
%mod = and <32 x i8> %b, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>
1372-
%splat = shufflevector <32 x i8> %mod, <32 x i8> undef, <32 x i32> zeroinitializer
1372+
%splat = shufflevector <32 x i8> %mod, <32 x i8> poison, <32 x i32> zeroinitializer
13731373
%shift = ashr <32 x i8> %a, %splat
13741374
ret <32 x i8> %shift
13751375
}

llvm/test/CodeGen/X86/vector-shift-ashr-512.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ define <8 x i64> @splatvar_shift_v8i64(<8 x i64> %a, <8 x i64> %b) nounwind {
150150
; ALL: # %bb.0:
151151
; ALL-NEXT: vpsraq %xmm1, %zmm0, %zmm0
152152
; ALL-NEXT: retq
153-
%splat = shufflevector <8 x i64> %b, <8 x i64> undef, <8 x i32> zeroinitializer
153+
%splat = shufflevector <8 x i64> %b, <8 x i64> poison, <8 x i32> zeroinitializer
154154
%shift = ashr <8 x i64> %a, %splat
155155
ret <8 x i64> %shift
156156
}
@@ -161,7 +161,7 @@ define <16 x i32> @splatvar_shift_v16i32(<16 x i32> %a, <16 x i32> %b) nounwind
161161
; ALL-NEXT: vpmovzxdq {{.*#+}} xmm1 = xmm1[0],zero,xmm1[1],zero
162162
; ALL-NEXT: vpsrad %xmm1, %zmm0, %zmm0
163163
; ALL-NEXT: retq
164-
%splat = shufflevector <16 x i32> %b, <16 x i32> undef, <16 x i32> zeroinitializer
164+
%splat = shufflevector <16 x i32> %b, <16 x i32> poison, <16 x i32> zeroinitializer
165165
%shift = ashr <16 x i32> %a, %splat
166166
ret <16 x i32> %shift
167167
}
@@ -181,7 +181,7 @@ define <32 x i16> @splatvar_shift_v32i16(<32 x i16> %a, <32 x i16> %b) nounwind
181181
; AVX512BW-NEXT: vpmovzxwq {{.*#+}} xmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero
182182
; AVX512BW-NEXT: vpsraw %xmm1, %zmm0, %zmm0
183183
; AVX512BW-NEXT: retq
184-
%splat = shufflevector <32 x i16> %b, <32 x i16> undef, <32 x i32> zeroinitializer
184+
%splat = shufflevector <32 x i16> %b, <32 x i16> poison, <32 x i32> zeroinitializer
185185
%shift = ashr <32 x i16> %a, %splat
186186
ret <32 x i16> %shift
187187
}
@@ -221,7 +221,7 @@ define <64 x i8> @splatvar_shift_v64i8(<64 x i8> %a, <64 x i8> %b) nounwind {
221221
; AVX512BW-NEXT: vpternlogq $108, %zmm0, %zmm2, %zmm1
222222
; AVX512BW-NEXT: vpsubb %zmm2, %zmm1, %zmm0
223223
; AVX512BW-NEXT: retq
224-
%splat = shufflevector <64 x i8> %b, <64 x i8> undef, <64 x i32> zeroinitializer
224+
%splat = shufflevector <64 x i8> %b, <64 x i8> poison, <64 x i32> zeroinitializer
225225
%shift = ashr <64 x i8> %a, %splat
226226
ret <64 x i8> %shift
227227
}
@@ -237,7 +237,7 @@ define <8 x i64> @splatvar_modulo_shift_v8i64(<8 x i64> %a, <8 x i64> %b) nounwi
237237
; ALL-NEXT: vpsraq %xmm1, %zmm0, %zmm0
238238
; ALL-NEXT: retq
239239
%mod = and <8 x i64> %b, <i64 63, i64 63, i64 63, i64 63, i64 63, i64 63, i64 63, i64 63>
240-
%splat = shufflevector <8 x i64> %mod, <8 x i64> undef, <8 x i32> zeroinitializer
240+
%splat = shufflevector <8 x i64> %mod, <8 x i64> poison, <8 x i32> zeroinitializer
241241
%shift = ashr <8 x i64> %a, %splat
242242
ret <8 x i64> %shift
243243
}
@@ -249,7 +249,7 @@ define <16 x i32> @splatvar_modulo_shift_v16i32(<16 x i32> %a, <16 x i32> %b) no
249249
; ALL-NEXT: vpsrad %xmm1, %zmm0, %zmm0
250250
; ALL-NEXT: retq
251251
%mod = and <16 x i32> %b, <i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31>
252-
%splat = shufflevector <16 x i32> %mod, <16 x i32> undef, <16 x i32> zeroinitializer
252+
%splat = shufflevector <16 x i32> %mod, <16 x i32> poison, <16 x i32> zeroinitializer
253253
%shift = ashr <16 x i32> %a, %splat
254254
ret <16 x i32> %shift
255255
}
@@ -270,7 +270,7 @@ define <32 x i16> @splatvar_modulo_shift_v32i16(<32 x i16> %a, <32 x i16> %b) no
270270
; AVX512BW-NEXT: vpsraw %xmm1, %zmm0, %zmm0
271271
; AVX512BW-NEXT: retq
272272
%mod = and <32 x i16> %b, <i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15>
273-
%splat = shufflevector <32 x i16> %mod, <32 x i16> undef, <32 x i32> zeroinitializer
273+
%splat = shufflevector <32 x i16> %mod, <32 x i16> poison, <32 x i32> zeroinitializer
274274
%shift = ashr <32 x i16> %a, %splat
275275
ret <32 x i16> %shift
276276
}
@@ -311,7 +311,7 @@ define <64 x i8> @splatvar_modulo_shift_v64i8(<64 x i8> %a, <64 x i8> %b) nounwi
311311
; AVX512BW-NEXT: vpsubb %zmm2, %zmm1, %zmm0
312312
; AVX512BW-NEXT: retq
313313
%mod = and <64 x i8> %b, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>
314-
%splat = shufflevector <64 x i8> %mod, <64 x i8> undef, <64 x i32> zeroinitializer
314+
%splat = shufflevector <64 x i8> %mod, <64 x i8> poison, <64 x i32> zeroinitializer
315315
%shift = ashr <64 x i8> %a, %splat
316316
ret <64 x i8> %shift
317317
}

llvm/test/CodeGen/X86/vector-shift-ashr-sub128.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1197,7 +1197,7 @@ define <2 x i32> @splatvar_shift_v2i32(<2 x i32> %a, <2 x i32> %b) nounwind {
11971197
; X86-SSE-NEXT: movss {{.*#+}} xmm2 = xmm1[0],xmm2[1,2,3]
11981198
; X86-SSE-NEXT: psrad %xmm2, %xmm0
11991199
; X86-SSE-NEXT: retl
1200-
%splat = shufflevector <2 x i32> %b, <2 x i32> undef, <2 x i32> zeroinitializer
1200+
%splat = shufflevector <2 x i32> %b, <2 x i32> poison, <2 x i32> zeroinitializer
12011201
%shift = ashr <2 x i32> %a, %splat
12021202
ret <2 x i32> %shift
12031203
}
@@ -1246,7 +1246,7 @@ define <4 x i16> @splatvar_shift_v4i16(<4 x i16> %a, <4 x i16> %b) nounwind {
12461246
; X86-SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
12471247
; X86-SSE-NEXT: psraw %xmm1, %xmm0
12481248
; X86-SSE-NEXT: retl
1249-
%splat = shufflevector <4 x i16> %b, <4 x i16> undef, <4 x i32> zeroinitializer
1249+
%splat = shufflevector <4 x i16> %b, <4 x i16> poison, <4 x i32> zeroinitializer
12501250
%shift = ashr <4 x i16> %a, %splat
12511251
ret <4 x i16> %shift
12521252
}
@@ -1295,7 +1295,7 @@ define <2 x i16> @splatvar_shift_v2i16(<2 x i16> %a, <2 x i16> %b) nounwind {
12951295
; X86-SSE-NEXT: psrldq {{.*#+}} xmm1 = xmm1[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
12961296
; X86-SSE-NEXT: psraw %xmm1, %xmm0
12971297
; X86-SSE-NEXT: retl
1298-
%splat = shufflevector <2 x i16> %b, <2 x i16> undef, <2 x i32> zeroinitializer
1298+
%splat = shufflevector <2 x i16> %b, <2 x i16> poison, <2 x i32> zeroinitializer
12991299
%shift = ashr <2 x i16> %a, %splat
13001300
ret <2 x i16> %shift
13011301
}
@@ -1433,7 +1433,7 @@ define <8 x i8> @splatvar_shift_v8i8(<8 x i8> %a, <8 x i8> %b) nounwind {
14331433
; X86-SSE-NEXT: pxor %xmm2, %xmm0
14341434
; X86-SSE-NEXT: psubb %xmm2, %xmm0
14351435
; X86-SSE-NEXT: retl
1436-
%splat = shufflevector <8 x i8> %b, <8 x i8> undef, <8 x i32> zeroinitializer
1436+
%splat = shufflevector <8 x i8> %b, <8 x i8> poison, <8 x i32> zeroinitializer
14371437
%shift = ashr <8 x i8> %a, %splat
14381438
ret <8 x i8> %shift
14391439
}
@@ -1571,7 +1571,7 @@ define <4 x i8> @splatvar_shift_v4i8(<4 x i8> %a, <4 x i8> %b) nounwind {
15711571
; X86-SSE-NEXT: pxor %xmm2, %xmm0
15721572
; X86-SSE-NEXT: psubb %xmm2, %xmm0
15731573
; X86-SSE-NEXT: retl
1574-
%splat = shufflevector <4 x i8> %b, <4 x i8> undef, <4 x i32> zeroinitializer
1574+
%splat = shufflevector <4 x i8> %b, <4 x i8> poison, <4 x i32> zeroinitializer
15751575
%shift = ashr <4 x i8> %a, %splat
15761576
ret <4 x i8> %shift
15771577
}
@@ -1700,7 +1700,7 @@ define <2 x i8> @splatvar_shift_v2i8(<2 x i8> %a, <2 x i8> %b) nounwind {
17001700
; X86-SSE-NEXT: pxor %xmm2, %xmm0
17011701
; X86-SSE-NEXT: psubb %xmm2, %xmm0
17021702
; X86-SSE-NEXT: retl
1703-
%splat = shufflevector <2 x i8> %b, <2 x i8> undef, <2 x i32> zeroinitializer
1703+
%splat = shufflevector <2 x i8> %b, <2 x i8> poison, <2 x i32> zeroinitializer
17041704
%shift = ashr <2 x i8> %a, %splat
17051705
ret <2 x i8> %shift
17061706
}

llvm/test/CodeGen/X86/vector-shift-by-select-loop.ll

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -450,22 +450,22 @@ for.body.preheader40:
450450

451451
vector.ph:
452452
%n.vec = and i64 %wide.trip.count, 4294967264
453-
%broadcast.splatinsert20 = insertelement <8 x i32> undef, i32 %amt0, i32 0
454-
%broadcast.splat21 = shufflevector <8 x i32> %broadcast.splatinsert20, <8 x i32> undef, <8 x i32> zeroinitializer
455-
%broadcast.splatinsert22 = insertelement <8 x i32> undef, i32 %amt1, i32 0
456-
%broadcast.splat23 = shufflevector <8 x i32> %broadcast.splatinsert22, <8 x i32> undef, <8 x i32> zeroinitializer
457-
%broadcast.splatinsert24 = insertelement <8 x i32> undef, i32 %amt0, i32 0
458-
%broadcast.splat25 = shufflevector <8 x i32> %broadcast.splatinsert24, <8 x i32> undef, <8 x i32> zeroinitializer
459-
%broadcast.splatinsert26 = insertelement <8 x i32> undef, i32 %amt1, i32 0
460-
%broadcast.splat27 = shufflevector <8 x i32> %broadcast.splatinsert26, <8 x i32> undef, <8 x i32> zeroinitializer
461-
%broadcast.splatinsert28 = insertelement <8 x i32> undef, i32 %amt0, i32 0
462-
%broadcast.splat29 = shufflevector <8 x i32> %broadcast.splatinsert28, <8 x i32> undef, <8 x i32> zeroinitializer
463-
%broadcast.splatinsert30 = insertelement <8 x i32> undef, i32 %amt1, i32 0
464-
%broadcast.splat31 = shufflevector <8 x i32> %broadcast.splatinsert30, <8 x i32> undef, <8 x i32> zeroinitializer
465-
%broadcast.splatinsert32 = insertelement <8 x i32> undef, i32 %amt0, i32 0
466-
%broadcast.splat33 = shufflevector <8 x i32> %broadcast.splatinsert32, <8 x i32> undef, <8 x i32> zeroinitializer
467-
%broadcast.splatinsert34 = insertelement <8 x i32> undef, i32 %amt1, i32 0
468-
%broadcast.splat35 = shufflevector <8 x i32> %broadcast.splatinsert34, <8 x i32> undef, <8 x i32> zeroinitializer
453+
%broadcast.splatinsert20 = insertelement <8 x i32> poison, i32 %amt0, i32 0
454+
%broadcast.splat21 = shufflevector <8 x i32> %broadcast.splatinsert20, <8 x i32> poison, <8 x i32> zeroinitializer
455+
%broadcast.splatinsert22 = insertelement <8 x i32> poison, i32 %amt1, i32 0
456+
%broadcast.splat23 = shufflevector <8 x i32> %broadcast.splatinsert22, <8 x i32> poison, <8 x i32> zeroinitializer
457+
%broadcast.splatinsert24 = insertelement <8 x i32> poison, i32 %amt0, i32 0
458+
%broadcast.splat25 = shufflevector <8 x i32> %broadcast.splatinsert24, <8 x i32> poison, <8 x i32> zeroinitializer
459+
%broadcast.splatinsert26 = insertelement <8 x i32> poison, i32 %amt1, i32 0
460+
%broadcast.splat27 = shufflevector <8 x i32> %broadcast.splatinsert26, <8 x i32> poison, <8 x i32> zeroinitializer
461+
%broadcast.splatinsert28 = insertelement <8 x i32> poison, i32 %amt0, i32 0
462+
%broadcast.splat29 = shufflevector <8 x i32> %broadcast.splatinsert28, <8 x i32> poison, <8 x i32> zeroinitializer
463+
%broadcast.splatinsert30 = insertelement <8 x i32> poison, i32 %amt1, i32 0
464+
%broadcast.splat31 = shufflevector <8 x i32> %broadcast.splatinsert30, <8 x i32> poison, <8 x i32> zeroinitializer
465+
%broadcast.splatinsert32 = insertelement <8 x i32> poison, i32 %amt0, i32 0
466+
%broadcast.splat33 = shufflevector <8 x i32> %broadcast.splatinsert32, <8 x i32> poison, <8 x i32> zeroinitializer
467+
%broadcast.splatinsert34 = insertelement <8 x i32> poison, i32 %amt1, i32 0
468+
%broadcast.splat35 = shufflevector <8 x i32> %broadcast.splatinsert34, <8 x i32> poison, <8 x i32> zeroinitializer
469469
br label %vector.body
470470

471471
vector.body:
@@ -655,12 +655,12 @@ entry:
655655

656656
vector.ph:
657657
%n.vec = and i64 %wide.trip.count, 4294967292
658-
%splatinsert18 = insertelement <4 x i32> undef, i32 %amt0, i32 0
659-
%splat1 = shufflevector <4 x i32> %splatinsert18, <4 x i32> undef, <4 x i32> zeroinitializer
660-
%splatinsert20 = insertelement <4 x i32> undef, i32 %amt1, i32 0
661-
%splat2 = shufflevector <4 x i32> %splatinsert20, <4 x i32> undef, <4 x i32> zeroinitializer
662-
%splatinsert22 = insertelement <4 x i32> undef, i32 %x, i32 0
663-
%splat3 = shufflevector <4 x i32> %splatinsert22, <4 x i32> undef, <4 x i32> zeroinitializer
658+
%splatinsert18 = insertelement <4 x i32> poison, i32 %amt0, i32 0
659+
%splat1 = shufflevector <4 x i32> %splatinsert18, <4 x i32> poison, <4 x i32> zeroinitializer
660+
%splatinsert20 = insertelement <4 x i32> poison, i32 %amt1, i32 0
661+
%splat2 = shufflevector <4 x i32> %splatinsert20, <4 x i32> poison, <4 x i32> zeroinitializer
662+
%splatinsert22 = insertelement <4 x i32> poison, i32 %x, i32 0
663+
%splat3 = shufflevector <4 x i32> %splatinsert22, <4 x i32> poison, <4 x i32> zeroinitializer
664664
br label %vector.body
665665

666666
vector.body:

0 commit comments

Comments
 (0)