Skip to content

Commit 557a0be

Browse files
committed
[InstCombine] Add test for splat shuffle miscompile (NFC)
1 parent c1b5b7c commit 557a0be

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

llvm/test/Transforms/InstCombine/vec_shuffle.ll

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2345,3 +2345,27 @@ define i16 @pr92887(<2 x i16> %v) {
23452345
%extract = extractelement <4 x i16> %shuf, i32 2
23462346
ret i16 %extract
23472347
}
2348+
2349+
; FIXME: This is a miscompile.
2350+
define <2 x i32> @not_splat_shuffle1(i32 %x) {
2351+
; CHECK-LABEL: @not_splat_shuffle1(
2352+
; CHECK-NEXT: [[TMP1:%.*]] = insertelement <2 x i32> poison, i32 [[X:%.*]], i64 0
2353+
; CHECK-NEXT: [[SHUF:%.*]] = shufflevector <2 x i32> [[TMP1]], <2 x i32> poison, <2 x i32> zeroinitializer
2354+
; CHECK-NEXT: ret <2 x i32> [[SHUF]]
2355+
;
2356+
%vec = insertelement <2 x i32> undef, i32 %x, i32 1
2357+
%shuf = shufflevector <2 x i32> %vec, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
2358+
ret <2 x i32> %shuf
2359+
}
2360+
2361+
; FIXME: This is a miscompile.
2362+
define <2 x i32> @not_splat_shuffle2(i32 %x) {
2363+
; CHECK-LABEL: @not_splat_shuffle2(
2364+
; CHECK-NEXT: [[TMP1:%.*]] = insertelement <2 x i32> poison, i32 [[X:%.*]], i64 0
2365+
; CHECK-NEXT: [[SHUF:%.*]] = shufflevector <2 x i32> [[TMP1]], <2 x i32> poison, <2 x i32> zeroinitializer
2366+
; CHECK-NEXT: ret <2 x i32> [[SHUF]]
2367+
;
2368+
%vec = insertelement <2 x i32> poison, i32 %x, i32 1
2369+
%shuf = shufflevector <2 x i32> %vec, <2 x i32> undef, <2 x i32> <i32 1, i32 3>
2370+
ret <2 x i32> %shuf
2371+
}

0 commit comments

Comments
 (0)