@@ -2345,3 +2345,27 @@ define i16 @pr92887(<2 x i16> %v) {
2345
2345
%extract = extractelement <4 x i16 > %shuf , i32 2
2346
2346
ret i16 %extract
2347
2347
}
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