OLD | NEW |
1 ; This test is lowered from C code that does some simple aritmetic | 1 ; This test is lowered from C code that does some simple aritmetic |
2 ; with struct members. | 2 ; with struct members. |
3 | 3 |
4 ; REQUIRES: allow_dump | 4 ; REQUIRES: allow_dump |
5 ; RUN: %p2i -i %s --args --verbose inst -threads=0 | FileCheck %s | 5 ; RUN: %p2i -i %s --args --verbose inst -threads=0 | FileCheck %s |
6 | 6 |
7 define internal i32 @compute_important_function(i32 %v1, i32 %v2) { | 7 define internal i32 @compute_important_function(i32 %v1, i32 %v2) { |
8 entry: | 8 entry: |
9 %__2 = inttoptr i32 %v1 to i32* | 9 %__2 = inttoptr i32 %v1 to i32* |
10 %_v0 = load i32* %__2, align 1 | 10 %_v0 = load i32, i32* %__2, align 1 |
11 | 11 |
12 ; CHECK: entry: | 12 ; CHECK: entry: |
13 ; CHECK-NEXT: %_v0 = load i32* {{.*}}, align 1 | 13 ; CHECK-NEXT: %_v0 = load i32, i32* {{.*}}, align 1 |
14 | 14 |
15 %__4 = inttoptr i32 %v2 to i32* | 15 %__4 = inttoptr i32 %v2 to i32* |
16 %_v1 = load i32* %__4, align 1 | 16 %_v1 = load i32, i32* %__4, align 1 |
17 %gep = add i32 %v2, 12 | 17 %gep = add i32 %v2, 12 |
18 %__7 = inttoptr i32 %gep to i32* | 18 %__7 = inttoptr i32 %gep to i32* |
19 %_v2 = load i32* %__7, align 1 | 19 %_v2 = load i32, i32* %__7, align 1 |
20 %mul = mul i32 %_v2, %_v1 | 20 %mul = mul i32 %_v2, %_v1 |
21 %gep6 = add i32 %v1, 4 | 21 %gep6 = add i32 %v1, 4 |
22 %__11 = inttoptr i32 %gep6 to i32* | 22 %__11 = inttoptr i32 %gep6 to i32* |
23 %_v3 = load i32* %__11, align 1 | 23 %_v3 = load i32, i32* %__11, align 1 |
24 %gep8 = add i32 %v2, 8 | 24 %gep8 = add i32 %v2, 8 |
25 %__14 = inttoptr i32 %gep8 to i32* | 25 %__14 = inttoptr i32 %gep8 to i32* |
26 %_v4 = load i32* %__14, align 1 | 26 %_v4 = load i32, i32* %__14, align 1 |
27 %gep10 = add i32 %v2, 4 | 27 %gep10 = add i32 %v2, 4 |
28 %__17 = inttoptr i32 %gep10 to i32* | 28 %__17 = inttoptr i32 %gep10 to i32* |
29 %_v5 = load i32* %__17, align 1 | 29 %_v5 = load i32, i32* %__17, align 1 |
30 %mul3 = mul i32 %_v5, %_v4 | 30 %mul3 = mul i32 %_v5, %_v4 |
31 %gep12 = add i32 %v1, 8 | 31 %gep12 = add i32 %v1, 8 |
32 %__21 = inttoptr i32 %gep12 to i32* | 32 %__21 = inttoptr i32 %gep12 to i32* |
33 %_v6 = load i32* %__21, align 1 | 33 %_v6 = load i32, i32* %__21, align 1 |
34 %mul7 = mul i32 %_v6, %_v3 | 34 %mul7 = mul i32 %_v6, %_v3 |
35 %mul9 = mul i32 %mul7, %_v6 | 35 %mul9 = mul i32 %mul7, %_v6 |
36 %gep14 = add i32 %v1, 12 | 36 %gep14 = add i32 %v1, 12 |
37 %__26 = inttoptr i32 %gep14 to i32* | 37 %__26 = inttoptr i32 %gep14 to i32* |
38 %_v7 = load i32* %__26, align 1 | 38 %_v7 = load i32, i32* %__26, align 1 |
39 %mul11 = mul i32 %mul9, %_v7 | 39 %mul11 = mul i32 %mul9, %_v7 |
40 %add4.neg = add i32 %mul, %_v0 | 40 %add4.neg = add i32 %mul, %_v0 |
41 %add = sub i32 %add4.neg, %_v3 | 41 %add = sub i32 %add4.neg, %_v3 |
42 %sub = sub i32 %add, %mul3 | 42 %sub = sub i32 %add, %mul3 |
43 %sub12 = sub i32 %sub, %mul11 | 43 %sub12 = sub i32 %sub, %mul11 |
44 ret i32 %sub12 | 44 ret i32 %sub12 |
45 | 45 |
46 ; CHECK: %sub12 = sub i32 %sub, %mul11 | 46 ; CHECK: %sub12 = sub i32 %sub, %mul11 |
47 ; CHECK-NEXT: ret i32 %sub12 | 47 ; CHECK-NEXT: ret i32 %sub12 |
48 } | 48 } |
OLD | NEW |