@@ -8,25 +8,22 @@ define void @implLDR(i64 %imm, ptr %rs2, ptr %rs1, ptr noalias %rd) {
88 %rs2.v = load i64 , ptr %rs2 , align 8
99 %3 = shl i64 %rs2.v , %imm
1010 %rs1.v = load i64 , ptr %rs1 , align 8
11- %4 = zext i64 %rs1.v to i128
12- %5 = zext i64 %3 to i128
13- %6 = add i128 %4 , %5
14- %7 = trunc i128 %6 to i64
15- %8 = alloca i64 , align 8
16- store i64 %7 , ptr %8 , align 4
17- %.v = load i64 , ptr %8 , align 8
18- %9 = inttoptr i64 %.v to ptr
19- %.v1 = load i64 , ptr %9 , align 8
20- %10 = alloca i64 , align 8
21- store i64 %.v1 , ptr %10 , align 4
22- br i1 true , label %11 , label %12
11+ %4 = add i64 %rs1.v , %3
12+ %5 = alloca i64 , align 8
13+ store i64 %4 , ptr %5 , align 4
14+ %.v = load i64 , ptr %5 , align 8
15+ %6 = inttoptr i64 %.v to ptr
16+ %.v1 = load i64 , ptr %6 , align 8
17+ %7 = alloca i64 , align 8
18+ store i64 %.v1 , ptr %7 , align 4
19+ br i1 true , label %8 , label %9
2320
24- 11 : ; preds = %0
25- %.v2 = load i64 , ptr %10 , align 8
21+ 8 : ; preds = %0
22+ %.v2 = load i64 , ptr %7 , align 8
2623 store i64 %.v2 , ptr %rd , align 8
27- br label %12
24+ br label %9
2825
29- 12 : ; preds = %11 , %0
26+ 9 : ; preds = %8 , %0
3027 ret void
3128}
3229
@@ -40,31 +37,13 @@ define void @implSTR(ptr %rs3, ptr %rs2, ptr %rs1, i64 %imm) {
4037 %rs2.v = load i64 , ptr %rs2 , align 8
4138 %3 = shl i64 %rs2.v , %imm
4239 %rs1.v = load i64 , ptr %rs1 , align 8
43- %4 = zext i64 %rs1.v to i128
44- %5 = zext i64 %3 to i128
45- %6 = add i128 %4 , %5
46- %7 = trunc i128 %6 to i64
47- %8 = alloca i64 , align 8
48- store i64 %7 , ptr %8 , align 4
49- %.v = load i64 , ptr %8 , align 8
50- %9 = inttoptr i64 %.v to ptr
40+ %4 = add i64 %rs1.v , %3
41+ %5 = alloca i64 , align 8
42+ store i64 %4 , ptr %5 , align 4
43+ %.v = load i64 , ptr %5 , align 8
44+ %6 = inttoptr i64 %.v to ptr
5145 %rs3.v = load i64 , ptr %rs3 , align 8
52- store i64 %rs3.v , ptr %9 , align 8
53- ret void
54- }
55-
56- define void @implADD3 (ptr %rs2 , ptr %rs1 , ptr noalias %rd ) {
57- %rs1.v = load i64 , ptr %rs1 , align 8
58- %rs2.v = load i64 , ptr %rs2 , align 8
59- %1 = zext i64 %rs1.v to i128
60- %2 = zext i64 %rs2.v to i128
61- %3 = add i128 %1 , %2
62- %rd.v = load i64 , ptr %rd , align 8
63- %4 = zext i64 %rd.v to i256
64- %5 = zext i128 %3 to i256
65- %6 = add i256 %4 , %5
66- %7 = trunc i256 %6 to i64
67- store i64 %7 , ptr %rd , align 8
46+ store i64 %rs3.v , ptr %6 , align 8
6847 ret void
6948}
7049
@@ -75,15 +54,10 @@ define void @implLOADMAC(ptr %rs2, ptr %rs1, ptr noalias %rd) {
7554 %2 = inttoptr i64 %rs2.v to ptr
7655 %.v = load i64 , ptr %1 , align 8
7756 %.v1 = load i64 , ptr %2 , align 8
78- %3 = zext i64 %.v to i128
79- %4 = zext i64 %.v1 to i128
80- %5 = mul i128 %3 , %4
57+ %3 = mul i64 %.v , %.v1
8158 %rd.v = load i64 , ptr %rd , align 8
82- %6 = zext i64 %rd.v to i256
83- %7 = zext i128 %5 to i256
84- %8 = add i256 %6 , %7
85- %9 = trunc i256 %8 to i64
86- store i64 %9 , ptr %rd , align 8
59+ %4 = add i64 %rd.v , %3
60+ store i64 %4 , ptr %rd , align 8
8761 ret void
8862}
8963
0 commit comments