|
3 | 3 |
|
4 | 4 | %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76" = type { i32, i32 }
|
5 | 5 |
|
6 |
| -define void @_Z2azv() local_unnamed_addr { |
| 6 | +define void @_Z2azv(ptr %p) local_unnamed_addr { |
7 | 7 | ; CHECK-LABEL: @_Z2azv(
|
8 | 8 | ; CHECK-NEXT: for.body.lr.ph:
|
9 |
| -; CHECK-NEXT: [[DOTSROA_CAST_4:%.*]] = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr undef, i64 4, i32 0 |
| 9 | +; CHECK-NEXT: [[DOTSROA_CAST_4:%.*]] = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr [[P:%.*]], i64 4, i32 0 |
10 | 10 | ; CHECK-NEXT: [[TMP1:%.*]] = load <8 x i32>, ptr [[DOTSROA_CAST_4]], align 4
|
11 | 11 | ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @llvm.vector.reduce.smax.v8i32(<8 x i32> [[TMP1]])
|
12 |
| -; CHECK-NEXT: [[OP_RDX:%.*]] = icmp sgt i32 [[TMP2]], undef |
13 |
| -; CHECK-NEXT: [[OP_RDX1:%.*]] = select i1 [[OP_RDX]], i32 [[TMP2]], i32 undef |
14 |
| -; CHECK-NEXT: [[DOTSROA_SPECULATED_9:%.*]] = select i1 undef, i32 undef, i32 [[OP_RDX1]] |
15 |
| -; CHECK-NEXT: [[CMP_I1_10:%.*]] = icmp slt i32 [[DOTSROA_SPECULATED_9]], undef |
| 12 | +; CHECK-NEXT: [[OP_RDX:%.*]] = icmp sgt i32 [[TMP2]], 0 |
| 13 | +; CHECK-NEXT: [[OP_RDX1:%.*]] = select i1 [[OP_RDX]], i32 [[TMP2]], i32 0 |
| 14 | +; CHECK-NEXT: [[DOTSROA_SPECULATED_9:%.*]] = select i1 false, i32 0, i32 [[OP_RDX1]] |
| 15 | +; CHECK-NEXT: [[CMP_I1_10:%.*]] = icmp slt i32 [[DOTSROA_SPECULATED_9]], 0 |
16 | 16 | ; CHECK-NEXT: ret void
|
17 | 17 | ;
|
18 | 18 | for.body.lr.ph:
|
19 |
| - %.sroa_cast.4 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr undef, i64 4, i32 0 |
| 19 | + %.sroa_cast.4 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr %p, i64 4, i32 0 |
20 | 20 | %retval.sroa.0.0.copyload.i5.4 = load i32, ptr %.sroa_cast.4, align 4
|
21 |
| - %.sroa_raw_idx.4 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr undef, i64 4, i32 1 |
| 21 | + %.sroa_raw_idx.4 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr %p, i64 4, i32 1 |
22 | 22 | %retval.sroa.0.0.copyload.i7.4 = load i32, ptr %.sroa_raw_idx.4, align 4
|
23 | 23 | %cmp.i2.4 = icmp slt i32 %retval.sroa.0.0.copyload.i5.4, %retval.sroa.0.0.copyload.i7.4
|
24 | 24 | %0 = select i1 %cmp.i2.4, i32 %retval.sroa.0.0.copyload.i7.4, i32 %retval.sroa.0.0.copyload.i5.4
|
25 |
| - %cmp.i1.4 = icmp slt i32 undef, %0 |
26 |
| - %.sroa.speculated.4 = select i1 %cmp.i1.4, i32 %0, i32 undef |
27 |
| - %.sroa_cast.5 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr undef, i64 5, i32 0 |
| 25 | + %cmp.i1.4 = icmp slt i32 0, %0 |
| 26 | + %.sroa.speculated.4 = select i1 %cmp.i1.4, i32 %0, i32 0 |
| 27 | + %.sroa_cast.5 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr %p, i64 5, i32 0 |
28 | 28 | %retval.sroa.0.0.copyload.i5.5 = load i32, ptr %.sroa_cast.5, align 4
|
29 |
| - %.sroa_raw_idx.5 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr undef, i64 5, i32 1 |
| 29 | + %.sroa_raw_idx.5 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr %p, i64 5, i32 1 |
30 | 30 | %retval.sroa.0.0.copyload.i7.5 = load i32, ptr %.sroa_raw_idx.5, align 4
|
31 | 31 | %cmp.i2.5 = icmp slt i32 %retval.sroa.0.0.copyload.i5.5, %retval.sroa.0.0.copyload.i7.5
|
32 | 32 | %1 = select i1 %cmp.i2.5, i32 %retval.sroa.0.0.copyload.i7.5, i32 %retval.sroa.0.0.copyload.i5.5
|
33 | 33 | %cmp.i1.5 = icmp slt i32 %.sroa.speculated.4, %1
|
34 | 34 | %.sroa.speculated.5 = select i1 %cmp.i1.5, i32 %1, i32 %.sroa.speculated.4
|
35 |
| - %.sroa_cast.6 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr undef, i64 6, i32 0 |
| 35 | + %.sroa_cast.6 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr %p, i64 6, i32 0 |
36 | 36 | %retval.sroa.0.0.copyload.i5.6 = load i32, ptr %.sroa_cast.6, align 4
|
37 |
| - %.sroa_raw_idx.6 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr undef, i64 6, i32 1 |
| 37 | + %.sroa_raw_idx.6 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr %p, i64 6, i32 1 |
38 | 38 | %retval.sroa.0.0.copyload.i7.6 = load i32, ptr %.sroa_raw_idx.6, align 4
|
39 | 39 | %cmp.i2.6 = icmp slt i32 %retval.sroa.0.0.copyload.i5.6, %retval.sroa.0.0.copyload.i7.6
|
40 | 40 | %2 = select i1 %cmp.i2.6, i32 %retval.sroa.0.0.copyload.i7.6, i32 %retval.sroa.0.0.copyload.i5.6
|
41 | 41 | %cmp.i1.6 = icmp slt i32 %.sroa.speculated.5, %2
|
42 | 42 | %.sroa.speculated.6 = select i1 %cmp.i1.6, i32 %2, i32 %.sroa.speculated.5
|
43 |
| - %.sroa_cast.7 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr undef, i64 7, i32 0 |
| 43 | + %.sroa_cast.7 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr %p, i64 7, i32 0 |
44 | 44 | %retval.sroa.0.0.copyload.i5.7 = load i32, ptr %.sroa_cast.7, align 4
|
45 |
| - %.sroa_raw_idx.7 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr undef, i64 7, i32 1 |
| 45 | + %.sroa_raw_idx.7 = getelementptr inbounds %"struct.std::h.0.4.8.12.16.20.24.28.248.0.1.2.3.76", ptr %p, i64 7, i32 1 |
46 | 46 | %retval.sroa.0.0.copyload.i7.7 = load i32, ptr %.sroa_raw_idx.7, align 4
|
47 | 47 | %cmp.i2.7 = icmp slt i32 %retval.sroa.0.0.copyload.i5.7, %retval.sroa.0.0.copyload.i7.7
|
48 | 48 | %3 = select i1 %cmp.i2.7, i32 %retval.sroa.0.0.copyload.i7.7, i32 %retval.sroa.0.0.copyload.i5.7
|
49 | 49 | %cmp.i1.7 = icmp slt i32 %.sroa.speculated.6, %3
|
50 | 50 | %.sroa.speculated.7 = select i1 %cmp.i1.7, i32 %3, i32 %.sroa.speculated.6
|
51 |
| - %cmp.i1.8 = icmp slt i32 %.sroa.speculated.7, undef |
52 |
| - %.sroa.speculated.8 = select i1 %cmp.i1.8, i32 undef, i32 %.sroa.speculated.7 |
53 |
| - %.sroa.speculated.9 = select i1 undef, i32 undef, i32 %.sroa.speculated.8 |
54 |
| - %cmp.i1.10 = icmp slt i32 %.sroa.speculated.9, undef |
| 51 | + %cmp.i1.8 = icmp slt i32 %.sroa.speculated.7, 0 |
| 52 | + %.sroa.speculated.8 = select i1 %cmp.i1.8, i32 0, i32 %.sroa.speculated.7 |
| 53 | + %.sroa.speculated.9 = select i1 0, i32 0, i32 %.sroa.speculated.8 |
| 54 | + %cmp.i1.10 = icmp slt i32 %.sroa.speculated.9, 0 |
55 | 55 | ret void
|
56 | 56 | }
|
57 | 57 |
|
0 commit comments