arm64/isel: Avoid signed overflow when handling immediates
[qbe.git] / test / spill1.ssa
blob21e98c2c64d025746d4d716180c9c9660b594064
1 export
2 function w $f(w %n0) {
3 @start
4 @loop
5         %n1 =w phi @start %n0, @loop %n2
7         %p0 =w phi @start 0, @loop %p01
8         %p1 =w phi @start 0, @loop %p11
9         %p2 =w phi @start 0, @loop %p21
10         %p3 =w phi @start 0, @loop %p31
11         %p4 =w phi @start 0, @loop %p41
12         %p5 =w phi @start 0, @loop %p51
13         %p6 =w phi @start 0, @loop %p61
14         %p7 =w phi @start 0, @loop %p71
15         %p8 =w phi @start 0, @loop %p81
16         %p9 =w phi @start 0, @loop %p91
17         %pa =w phi @start 0, @loop %pa1
18         %pb =w phi @start 0, @loop %pb1
19         %pc =w phi @start 0, @loop %pc1
20         %pd =w phi @start 0, @loop %pd1
21         %pe =w phi @start 0, @loop %pe1
22         %pf =w phi @start 0, @loop %pf1
24         %p01 =w add 1, %p0
25         %p11 =w add 2, %p1
26         %p21 =w add 3, %p2
27         %p31 =w add 4, %p3
28         %p41 =w add 5, %p4
29         %p51 =w add 6, %p5
30         %p61 =w add 7, %p6
31         %p71 =w add 8, %p7
32         %p81 =w add 9, %p8
33         %p91 =w add 10, %p9
34         %pa1 =w add 11, %pa
35         %pb1 =w add 12, %pb
36         %pc1 =w add 13, %pc
37         %pd1 =w add 14, %pd
38         %pe1 =w add 15, %pe
39         %pf1 =w add 16, %pf
41         %n2 =w sub %n1, 1
42         jnz %n2, @loop, @end
44 @end
45         %a =w sub 0, 0
46         %a =w add %p01, %a
47         %a =w add %p11, %a
48         %a =w add %p21, %a
49         %a =w add %p31, %a
50         %a =w add %p41, %a
51         %a =w add %p51, %a
52         %a =w add %p61, %a
53         %a =w add %p71, %a
54         %a =w add %p81, %a
55         %a =w add %p91, %a
56         %a =w add %pa1, %a
57         %a =w add %pb1, %a
58         %a =w add %pc1, %a
59         %a =w add %pd1, %a
60         %a =w add %pe1, %a
61         %a =w add %pf1, %a
62         ret %a
65 # >>> driver
66 # extern int f(int);
67 # int main() { return !(f(1) == 136); }
68 # <<<