@@ -7,9 +7,11 @@ define void @test(ptr nocapture %t2) {
7
7
; CHECK-NEXT: [[T4:%.*]] = getelementptr inbounds i32, ptr [[T2]], i64 7
8
8
; CHECK-NEXT: [[T5:%.*]] = load i32, ptr [[T4]], align 4
9
9
; CHECK-NEXT: [[T8:%.*]] = getelementptr inbounds i32, ptr [[T2]], i64 1
10
+ ; CHECK-NEXT: [[T9:%.*]] = load i32, ptr [[T8]], align 4
10
11
; CHECK-NEXT: [[T10:%.*]] = getelementptr inbounds i32, ptr [[T2]], i64 6
11
12
; CHECK-NEXT: [[T11:%.*]] = load i32, ptr [[T10]], align 4
12
- ; CHECK-NEXT: [[TMP1:%.*]] = load <2 x i32>, ptr [[T8]], align 4
13
+ ; CHECK-NEXT: [[T14:%.*]] = getelementptr inbounds i32, ptr [[T2]], i64 2
14
+ ; CHECK-NEXT: [[T15:%.*]] = load i32, ptr [[T14]], align 4
13
15
; CHECK-NEXT: [[T16:%.*]] = getelementptr inbounds i32, ptr [[T2]], i64 5
14
16
; CHECK-NEXT: [[T17:%.*]] = load i32, ptr [[T16]], align 4
15
17
; CHECK-NEXT: [[T20:%.*]] = getelementptr inbounds i32, ptr [[T2]], i64 3
@@ -19,11 +21,10 @@ define void @test(ptr nocapture %t2) {
19
21
; CHECK-NEXT: [[T24:%.*]] = add nsw i32 [[T23]], [[T21]]
20
22
; CHECK-NEXT: [[T25:%.*]] = sub nsw i32 [[T21]], [[T23]]
21
23
; CHECK-NEXT: [[T27:%.*]] = sub nsw i32 [[T3]], [[T24]]
22
- ; CHECK-NEXT: [[T9:%.*]] = extractelement <2 x i32> [[TMP1]], i32 0
23
- ; CHECK-NEXT: [[T15:%.*]] = extractelement <2 x i32> [[TMP1]], i32 1
24
24
; CHECK-NEXT: [[T29:%.*]] = sub nsw i32 [[T9]], [[T15]]
25
25
; CHECK-NEXT: [[T30:%.*]] = add nsw i32 [[T27]], [[T29]]
26
26
; CHECK-NEXT: [[T31:%.*]] = mul nsw i32 [[T30]], 4433
27
+ ; CHECK-NEXT: [[T32:%.*]] = mul nsw i32 [[T27]], 6270
27
28
; CHECK-NEXT: [[T34:%.*]] = mul nsw i32 [[T29]], -15137
28
29
; CHECK-NEXT: [[T37:%.*]] = add nsw i32 [[T25]], [[T11]]
29
30
; CHECK-NEXT: [[T38:%.*]] = add nsw i32 [[T17]], [[T5]]
@@ -33,19 +34,20 @@ define void @test(ptr nocapture %t2) {
33
34
; CHECK-NEXT: [[T42:%.*]] = mul nsw i32 [[T17]], 16819
34
35
; CHECK-NEXT: [[T47:%.*]] = mul nsw i32 [[T37]], -16069
35
36
; CHECK-NEXT: [[T48:%.*]] = mul nsw i32 [[T38]], -3196
36
- ; CHECK-NEXT: [[TMP4 :%.*]] = shufflevector <2 x i32> [[TMP1 ]], <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
37
- ; CHECK-NEXT: [[TMP5 :%.*]] = insertelement <4 x i32> [[TMP4]] , i32 [[T27 ]], i32 2
38
- ; CHECK-NEXT: [[TMP6 :%.*]] = insertelement <4 x i32> [[TMP5 ]], i32 [[T47 ]], i32 3
39
- ; CHECK-NEXT: [[TMP7 :%.*]] = shufflevector <4 x i32> [[TMP6]], <4 x i32> <i32 poison, i32 poison , i32 6270, i32 poison>, <4 x i32> <i32 1, i32 0, i32 6, i32 poison>
40
- ; CHECK-NEXT: [[TMP8 :%.*]] = insertelement <4 x i32> [[TMP7 ]], i32 [[T40 ]], i32 3
41
- ; CHECK-NEXT: [[TMP9 :%.*]] = add nsw <4 x i32> [[TMP6 ]], [[TMP8 ]]
42
- ; CHECK-NEXT: [[TMP10 :%.*]] = mul nsw <4 x i32> [[TMP6 ]], [[TMP8]]
43
- ; CHECK-NEXT: [[TMP11 :%.*]] = shufflevector <4 x i32> [[TMP9 ]], <4 x i32> [[TMP10 ]], <4 x i32> <i32 0, i32 1, i32 6, i32 3>
44
- ; CHECK-NEXT: [[T50 :%.*]] = add nsw i32 [[T40 ]], [[T48]]
45
- ; CHECK-NEXT: [[TMP12 :%.*]] = shufflevector <4 x i32> [[TMP11 ]], <4 x i32> poison, <8 x i32> <i32 0, i32 1, i32 2 , i32 3 , i32 0 , i32 poison, i32 poison, i32 3 >
46
- ; CHECK-NEXT: [[T701:%.*]] = insertelement <8 x i32> [[TMP12 ]], i32 [[T50 ]], i32 5
37
+ ; CHECK-NEXT: [[T49 :%.*]] = add nsw i32 [[T40 ]], [[T47]]
38
+ ; CHECK-NEXT: [[TMP1 :%.*]] = insertelement <2 x i32> poison , i32 [[T15 ]], i32 0
39
+ ; CHECK-NEXT: [[TMP2 :%.*]] = insertelement <2 x i32> [[TMP1 ]], i32 [[T40 ]], i32 1
40
+ ; CHECK-NEXT: [[TMP3 :%.*]] = insertelement <2 x i32> poison, i32 [[T9]] , i32 0
41
+ ; CHECK-NEXT: [[TMP4 :%.*]] = insertelement <2 x i32> [[TMP3 ]], i32 [[T48 ]], i32 1
42
+ ; CHECK-NEXT: [[TMP5 :%.*]] = add nsw <2 x i32> [[TMP2 ]], [[TMP4 ]]
43
+ ; CHECK-NEXT: [[TMP6 :%.*]] = shufflevector <2 x i32> [[TMP5 ]], <2 x i32> poison, <8 x i32> <i32 0, i32 0, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
44
+ ; CHECK-NEXT: [[T67 :%.*]] = insertelement <8 x i32> [[TMP6 ]], i32 [[T32 ]], i32 2
45
+ ; CHECK-NEXT: [[T68 :%.*]] = insertelement <8 x i32> [[T67 ]], i32 [[T49]], i32 3
46
+ ; CHECK-NEXT: [[TMP7 :%.*]] = shufflevector <2 x i32> [[TMP5 ]], <2 x i32> poison, <8 x i32> <i32 0, i32 1, i32 poison , i32 poison , i32 poison , i32 poison, i32 poison, i32 poison >
47
+ ; CHECK-NEXT: [[T701:%.*]] = shufflevector <8 x i32> [[T68 ]], <8 x i32> [[TMP7 ]], <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 poison, i32 poison>
47
48
; CHECK-NEXT: [[T71:%.*]] = insertelement <8 x i32> [[T701]], i32 [[T34]], i32 6
48
- ; CHECK-NEXT: [[T76:%.*]] = shl <8 x i32> [[T71]], <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
49
+ ; CHECK-NEXT: [[T72:%.*]] = insertelement <8 x i32> [[T71]], i32 [[T49]], i32 7
50
+ ; CHECK-NEXT: [[T76:%.*]] = shl <8 x i32> [[T72]], <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
49
51
; CHECK-NEXT: store <8 x i32> [[T76]], ptr [[T2]], align 4
50
52
; CHECK-NEXT: ret void
51
53
;
0 commit comments