fix various codegen bugs on arm64
[qbe.git] / test / load2.ssa
blob05c12a66d93176290eef441924a268395257810a
1 # blit & load elimination
3 export
4 function $f() {
5 @start
6         %x =l alloc4 12
7         %y =l alloc4 12
9         %x1 =l add 1, %x
10         %x2 =l add 1, %x1
11         %x3 =l add 1, %x2
12         %x4 =l add 1, %x3
13         %x5 =l add 1, %x4
14         %x6 =l add 1, %x5
15         %x7 =l add 1, %x6
16         %x8 =l add 1, %x7
17         %x9 =l add 1, %x8
18         %xa =l add 1, %x9
19         %xb =l add 1, %xa
21         %y1 =l add 1, %y
22         %y4 =l add 4, %y
23         
24         storew 287454020, %x4   # 0x11223344
25         storew 1432778632, %y   # 0x55667788
26         blit %y, %x5, 1
27         %n =w load %x4
28         call $px(w %n)          # 0x11228844
30         storew 287454020, %x4   # 0x11223344
31         storew 1432778632, %y   # 0x55667788
32         blit %y, %x5, 2
33         %n =w load %x4
34         call $px(w %n)          # 0x11778844
36         storew 287454020, %x4   # 0x11223344
37         storew 1432778632, %y   # 0x55667788
38         blit %y, %x5, 4
39         %n =w load %x4
40         call $px(w %n)          # 0x66778844
42         storew 287454020, %x4   # 0x11223344
43         storew 1432778632, %y   # 0x55667788
44         blit %y, %x2, 4
45         %n =w load %x4
46         call $px(w %n)          # 0x11225566
48         storew 287454020, %x4   # 0x11223344
49         storew 0, %y
50         storew 1432778632, %y4  # 0x55667788
51         blit %y1, %x2, 7
52         %n =w load %x4
53         call $px(w %n)          # 0x66778800
55         ret
58 # >>> driver
59 # #include <stdio.h>
60 # void px(unsigned n) {
61 #       printf("0x%08x\n", n);
62 # }
63 # int main() {
64 #       extern void f(void);
65 #       f();
66 # }
67 # <<<
69 # >>> output
70 # 0x11228844
71 # 0x11778844
72 # 0x66778844
73 # 0x11225566
74 # 0x66778800
75 # <<<