repo.or.cz
/
qbe.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
cheaper mul by small constants on amd64
[qbe.git]
/
test
/
cprime.ssa
blob
8fadef3c9f614c916d55f86e0ff9cff33856c31a
1
# generated by Andrew Chambers'
2
# compiler from the C program
3
# following in comments
4
5
export
6
function w $main() {
7
@start
8
%v0 =l alloc8 4
9
%v1 =l alloc8 4
10
%v2 =l alloc8 4
11
%v3 =l alloc8 4
12
%v4 =l alloc8 4
13
storew 5, %v1
14
storew 11, %v2
15
storew 12, %v3
16
@L0
17
%v5 =w loadw %v1
18
%v6 =w cnew %v5, 201
19
jnz %v6, @L8, @L1
20
@L8
21
storew 1, %v4
22
%v7 =w loadw %v3
23
%v8 =w rem %v7, 2
24
%v9 =w ceqw %v8, 0
25
jnz %v9, @L9, @L5
26
@L9
27
storew 0, %v4
28
@L5
29
storew 3, %v0
30
@L2
31
%v10 =w loadw %v0
32
%v11 =w loadw %v3
33
%v12 =w csltw %v10, %v11
34
jnz %v12, @L10, @L3
35
@L10
36
%v13 =w loadw %v3
37
%v14 =w loadw %v0
38
%v15 =w rem %v13, %v14
39
%v16 =w ceqw %v15, 0
40
jnz %v16, @L11, @L4
41
@L11
42
storew 0, %v4
43
jmp @L3
44
@L4
45
%v17 =w loadw %v0
46
%v18 =w add %v17, 2
47
storew %v18, %v0
48
jmp @L2
49
@L3
50
%v19 =w loadw %v4
51
jnz %v19, @L12, @L6
52
@L12
53
%v20 =w loadw %v3
54
storew %v20, %v2
55
%v21 =w loadw %v1
56
%v22 =w add %v21, 1
57
storew %v22, %v1
58
@L6
59
%v23 =w loadw %v3
60
%v24 =w add %v23, 1
61
storew %v24, %v3
62
jmp @L0
63
@L1
64
%v25 =w loadw %v2
65
%v26 =w cnew %v25, 1229
66
jnz %v26, @L13, @L7
67
@L13
68
ret 1
69
@L7
70
ret 0
71
@end
72
ret 0
73
}
74
75
# int
76
# main()
77
# {
78
# int i, n, p, next, isprime;
79
#
80
# n = 5;
81
# p = 11;
82
# next = 12;
83
# while(n != 201) {
84
# isprime = 1;
85
# if(next % 2 == 0) {
86
# isprime = 0;
87
# } else {
88
# for(i = 3; i < next; i = i + 2) {
89
# if(next % i == 0) {
90
# isprime = 0;
91
# break;
92
# }
93
# }
94
# }
95
# if(isprime) {
96
# p = next;
97
# n = n + 1;
98
# }
99
# next = next + 1;
100
# }
101
# if(p != 1229)
102
# return 1;
103
# return 0;
104
# }