-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathllvm_ir.txt
166 lines (146 loc) · 5.65 KB
/
llvm_ir.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
declare i32 @getint()
declare void @putint(i32)
declare void @putch(i32)
declare void @putstr(i8*)
@a = dso_local global [510 x i32] zeroinitializer
@prime = dso_local global [510 x i32] zeroinitializer
@reflect1 = dso_local constant [16 x i32] [i32 -711942876, i32 -1060809599, i32 1758839997, i32 423174272, i32 1412407466, i32 375872692, i32 1543568839, i32 915987033, i32 698198080, i32 -2143283456, i32 2059223660, i32 -34179219, i32 378910912, i32 1498631475, i32 -1853883889, i32 1640319187]
@reflect2 = dso_local constant [5 x [5 x i32]] [[5 x i32] [i32 -1152785601, i32 1891446969, i32 938484211, i32 -1596516698, i32 1681072330], [5 x i32] [i32 128222498, i32 1090169129, i32 -347746822, i32 -326257601, i32 -1366930863], [5 x i32] [i32 -823961496, i32 2103453081, i32 -402114823, i32 2139806715, i32 -732814375], [5 x i32] [i32 1302967469, i32 1623817872, i32 898372270, i32 -812618050, i32 -1403178881], [5 x i32] [i32 -1776328495, i32 958769364, i32 47496017, i32 -1384738865, i32 1751940200]]
define dso_local i32 @main(){
Function_main_BasicBlock_0:
%v0 = alloca i32
store i32 2, i32* %v0
%v1 = alloca i32
%v2 = call i32 @getint()
store i32 %v2, i32* %v1
br label %Function_main_BasicBlock_1
Function_main_BasicBlock_1:
%v3 = load i32, i32* %v0
%v4 = load i32, i32* %v1
%v5 = icmp slt i32 %v3, %v4
br i1 %v5, label %Function_main_BasicBlock_2, label %Function_main_BasicBlock_4
Function_main_BasicBlock_2:
%v6 = load i32, i32* %v0
%v7 = getelementptr [510 x i32], [510 x i32]* @a, i32 0, i32 %v6
store i32 1, i32* %v7
%v8 = load i32, i32* %v0
%v9 = add i32 %v8, 1
store i32 %v9, i32* %v0
br label %Function_main_BasicBlock_1
Function_main_BasicBlock_4:
store i32 2, i32* %v0
%v10 = alloca i32
store i32 0, i32* %v10
br label %Function_main_BasicBlock_5
Function_main_BasicBlock_5:
%v11 = load i32, i32* %v0
%v12 = load i32, i32* %v1
%v13 = icmp slt i32 %v11, %v12
br i1 %v13, label %Function_main_BasicBlock_6, label %Function_main_BasicBlock_8
Function_main_BasicBlock_6:
%v14 = load i32, i32* %v0
%v15 = getelementptr [510 x i32], [510 x i32]* @a, i32 0, i32 %v14
%v16 = load i32, i32* %v15
%v17 = icmp ne i32 %v16, 0
br i1 %v17, label %Function_main_BasicBlock_9, label %Function_main_BasicBlock_10
Function_main_BasicBlock_9:
%v18 = load i32, i32* %v10
%v19 = getelementptr [510 x i32], [510 x i32]* @prime, i32 0, i32 %v18
%v20 = load i32, i32* %v0
store i32 %v20, i32* %v19
%v21 = load i32, i32* %v10
%v22 = add i32 %v21, 1
store i32 %v22, i32* %v10
br label %Function_main_BasicBlock_10
Function_main_BasicBlock_10:
%v23 = alloca i32
store i32 0, i32* %v23
br label %Function_main_BasicBlock_11
Function_main_BasicBlock_11:
%v24 = load i32, i32* %v23
%v25 = load i32, i32* %v10
%v26 = icmp slt i32 %v24, %v25
br i1 %v26, label %Function_main_BasicBlock_15, label %Function_main_BasicBlock_14
Function_main_BasicBlock_15:
%v27 = load i32, i32* %v0
%v28 = load i32, i32* %v23
%v29 = getelementptr [510 x i32], [510 x i32]* @prime, i32 0, i32 %v28
%v30 = load i32, i32* %v29
%v31 = mul i32 %v27, %v30
%v32 = load i32, i32* %v1
%v33 = icmp sle i32 %v31, %v32
br i1 %v33, label %Function_main_BasicBlock_12, label %Function_main_BasicBlock_14
Function_main_BasicBlock_12:
%v34 = load i32, i32* %v0
%v35 = load i32, i32* %v23
%v36 = getelementptr [510 x i32], [510 x i32]* @prime, i32 0, i32 %v35
%v37 = load i32, i32* %v36
%v38 = mul i32 %v34, %v37
%v39 = getelementptr [510 x i32], [510 x i32]* @a, i32 0, i32 %v38
store i32 0, i32* %v39
%v40 = load i32, i32* %v0
%v41 = load i32, i32* %v23
%v42 = getelementptr [510 x i32], [510 x i32]* @prime, i32 0, i32 %v41
%v43 = load i32, i32* %v42
%v44 = srem i32 %v40, %v43
%v45 = icmp eq i32 %v44, 0
br i1 %v45, label %Function_main_BasicBlock_14, label %Function_main_BasicBlock_18
Function_main_BasicBlock_18:
%v46 = load i32, i32* %v23
%v47 = add i32 %v46, 1
store i32 %v47, i32* %v23
br label %Function_main_BasicBlock_11
Function_main_BasicBlock_14:
%v48 = load i32, i32* %v0
%v49 = add i32 %v48, 1
store i32 %v49, i32* %v0
br label %Function_main_BasicBlock_5
Function_main_BasicBlock_19:
%v50 = icmp ne i32 114514, 0
br i1 %v50, label %Function_main_BasicBlock_20, label %Function_main_BasicBlock_22
Function_main_BasicBlock_20:
%v51 = load i32, i32* %v0
%v52 = getelementptr [510 x i32], [510 x i32]* @a, i32 0, i32 %v51
%v53 = load i32, i32* %v52
%v54 = icmp ne i32 %v53, 0
br i1 %v54, label %Function_main_BasicBlock_23, label %Function_main_BasicBlock_24
Function_main_BasicBlock_23:
%v55 = load i32, i32* %v0
%v56 = load i32, i32* %v0
%v57 = srem i32 %v56, 2
%v58 = load i32, i32* %v0
%v59 = srem i32 %v58, 16
%v60 = getelementptr [16 x i32], [16 x i32]* @reflect1, i32 0, i32 %v59
%v61 = load i32, i32* %v60
%v62 = mul i32 %v57, %v61
%v63 = load i32, i32* %v0
%v64 = add i32 %v63, 1
%v65 = srem i32 %v64, 2
%v66 = load i32, i32* %v0
%v67 = srem i32 %v66, 5
%v68 = getelementptr [5 x [5 x i32]], [5 x [5 x i32]]* @reflect2, i32 0, i32 %v67
%v69 = load i32, i32* %v0
%v70 = srem i32 %v69, 5
%v71 = getelementptr [5 x i32], [5 x i32]* %v68, i32 0, i32 %v70
%v72 = load i32, i32* %v71
%v73 = mul i32 %v65, %v72
%v74 = add i32 %v62, %v73
call void @putint(i32 %v55)
call void @putch(i32 32)
call void @putint(i32 %v74)
call void @putch(i32 10)
br label %Function_main_BasicBlock_24
Function_main_BasicBlock_24:
%v75 = load i32, i32* %v0
%v76 = add i32 %v75, 1
store i32 %v76, i32* %v0
%v77 = load i32, i32* %v0
%v78 = load i32, i32* %v1
%v79 = icmp slt i32 %v77, %v78
br i1 %v79, label %Function_main_BasicBlock_19, label %Function_main_BasicBlock_22
Function_main_BasicBlock_8:
store i32 0, i32* %v0
br label %Function_main_BasicBlock_19
Function_main_BasicBlock_22:
ret i32 0
}