|
4 | 4 | define i64 @foo(i32 %tmp7) {
|
5 | 5 | ; CHECK-LABEL: @foo(
|
6 | 6 | ; CHECK-NEXT: bb:
|
7 |
| -; CHECK-NEXT: [[TMP2:%.*]] = insertelement <4 x i32> <i32 0, i32 0, i32 poison, i32 0>, i32 [[TMP5:%.*]], i32 2 |
8 |
| -; CHECK-NEXT: [[TMP3:%.*]] = sub <4 x i32> [[TMP2]], zeroinitializer |
9 |
| -; CHECK-NEXT: [[TMP24:%.*]] = sub i32 undef, 0 |
10 |
| -; CHECK-NEXT: [[TMP0:%.*]] = insertelement <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 poison, i32 poison, i32 undef, i32 0>, i32 [[TMP24]], i32 4 |
11 |
| -; CHECK-NEXT: [[TMP1:%.*]] = insertelement <8 x i32> [[TMP0]], i32 0, i32 5 |
12 |
| -; CHECK-NEXT: [[TMP11:%.*]] = insertelement <8 x i32> <i32 poison, i32 poison, i32 undef, i32 poison, i32 poison, i32 undef, i32 poison, i32 undef>, i32 [[TMP24]], i32 6 |
13 |
| -; CHECK-NEXT: [[TMP12:%.*]] = call <8 x i32> @llvm.vector.insert.v8i32.v4i32(<8 x i32> poison, <4 x i32> [[TMP3]], i64 0) |
14 |
| -; CHECK-NEXT: [[TMP4:%.*]] = shufflevector <8 x i32> [[TMP12]], <8 x i32> [[TMP11]], <8 x i32> <i32 0, i32 1, i32 poison, i32 2, i32 3, i32 poison, i32 14, i32 poison> |
15 |
| -; CHECK-NEXT: [[TMP5:%.*]] = add nsw <8 x i32> [[TMP1]], [[TMP4]] |
16 |
| -; CHECK-NEXT: [[TMP6:%.*]] = sub nsw <8 x i32> [[TMP1]], [[TMP4]] |
17 |
| -; CHECK-NEXT: [[TMP7:%.*]] = shufflevector <8 x i32> [[TMP5]], <8 x i32> [[TMP6]], <8 x i32> <i32 0, i32 9, i32 10, i32 11, i32 4, i32 5, i32 14, i32 15> |
| 7 | +; CHECK-NEXT: [[TMP0:%.*]] = insertelement <8 x i32> <i32 0, i32 0, i32 poison, i32 poison, i32 0, i32 poison, i32 poison, i32 poison>, i32 [[TMP8:%.*]], i32 3 |
| 8 | +; CHECK-NEXT: [[TMP4:%.*]] = sub <8 x i32> [[TMP0]], <i32 0, i32 0, i32 poison, i32 0, i32 0, i32 poison, i32 0, i32 poison> |
| 9 | +; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 poison, i32 poison, i32 poison, i32 0>, <8 x i32> [[TMP4]], <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 14, i32 poison, i32 poison, i32 7> |
| 10 | +; CHECK-NEXT: [[TMP13:%.*]] = insertelement <8 x i32> [[TMP2]], i32 0, i32 5 |
| 11 | +; CHECK-NEXT: [[TMP5:%.*]] = sub nsw <8 x i32> [[TMP13]], [[TMP4]] |
| 12 | +; CHECK-NEXT: [[TMP6:%.*]] = add nsw <8 x i32> [[TMP13]], [[TMP4]] |
| 13 | +; CHECK-NEXT: [[TMP7:%.*]] = shufflevector <8 x i32> [[TMP5]], <8 x i32> [[TMP6]], <8 x i32> <i32 8, i32 1, i32 2, i32 3, i32 12, i32 13, i32 6, i32 7> |
18 | 14 | ; CHECK-NEXT: [[TMP8:%.*]] = add <8 x i32> zeroinitializer, [[TMP7]]
|
19 | 15 | ; CHECK-NEXT: [[TMP9:%.*]] = xor <8 x i32> [[TMP8]], zeroinitializer
|
20 | 16 | ; CHECK-NEXT: [[TMP10:%.*]] = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> [[TMP9]])
|
|
29 | 25 | %tmp4 = xor i32 %tmp3, 0
|
30 | 26 | %tmp6 = sub i32 0, 0
|
31 | 27 | %tmp8 = sub i32 %tmp7, 0
|
32 |
| - %tmp9 = sub nsw i32 0, undef |
| 28 | + %tmp9 = sub nsw i32 0, poison |
33 | 29 | %tmp10 = add nsw i32 0, %tmp6
|
34 | 30 | %tmp11 = sub nsw i32 0, %tmp8
|
35 | 31 | %tmp12 = add i32 0, %tmp10
|
|
44 | 40 | %tmp21 = add i32 %tmp20, %tmp17
|
45 | 41 | %tmp22 = sub i32 0, 0
|
46 | 42 | %tmp23 = add i32 0, 0
|
47 |
| - %tmp24 = sub i32 undef, 0 |
48 |
| - %tmp25 = add nsw i32 %tmp23, undef |
| 43 | + %tmp24 = sub i32 poison, 0 |
| 44 | + %tmp25 = add nsw i32 %tmp23, poison |
49 | 45 | %tmp26 = add nsw i32 %tmp24, %tmp22
|
50 |
| - %tmp27 = sub nsw i32 undef, %tmp24 |
| 46 | + %tmp27 = sub nsw i32 poison, %tmp24 |
51 | 47 | %tmp28 = add i32 0, %tmp25
|
52 | 48 | %tmp29 = xor i32 %tmp28, 0
|
53 | 49 | %tmp30 = add i32 0, %tmp26
|
|
58 | 54 | %tmp35 = add i32 %tmp34, %tmp29
|
59 | 55 | %tmp36 = add i32 %tmp35, 0
|
60 | 56 | %tmp37 = add i32 %tmp36, %tmp33
|
61 |
| - %tmp38 = sub nsw i32 0, undef |
| 57 | + %tmp38 = sub nsw i32 0, poison |
62 | 58 | %tmp39 = add i32 0, %tmp38
|
63 | 59 | %tmp40 = xor i32 %tmp39, 0
|
64 | 60 | %tmp41 = add i32 0, %tmp37
|
|
0 commit comments