|
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