handle large hfas correctly on arm64
[qbe.git] / test / mem3.ssa
bloba6cafd2ee5436075b91d208e6439bccb0df3df37
1 # Ember Sawady reported this bug
2 # in stack-slot coalescing
4 type :type.3 = align 8 { l 1, l 1 }
5 type :tags.2 = { { :type.3 1 } }
6 type :type.1 = align 8 { w 1, :tags.2 1 }
7 type :tags.9 = { { w 1 } }
8 type :type.8 = align 4 { w 1, :tags.9 1 }
10 function :type.1 $func() {
11 @start.0
12         %object.5 =l alloc8 24
13         %object.7 =l alloc4 8
14         %binding.21 =l alloc8 16
15         %object.23 =l alloc8 24
16 @body.4
17         %.10 =l add %object.7, 4
18         jnz 1, @matches.13, @next.14
19 @matches.13
20         # binding.21 gets fused with object.23
21         storel 1, %binding.21
22         %value.22 =l add %binding.21, 8
23         storel 2, %value.22
24         %.24 =l add %object.23, 8
25         # but the blit direction is not set correctly
26         blit %binding.21, %.24, 16
27         ret %object.23
28 @next.14
29         storew 2543892678, %object.5
30         ret %object.5
33 export function w $main() {
34 @start.27
35         %object.43 =l alloc8 24
36         %object.49 =l alloc8 24
37 @body.28
38         %returns.34 =:type.1 call $func()
39         %value.47 =l add %returns.34, 16
40         %load.48 =l loadl %value.47
41         %.33 =w ceql %load.48, 2
42         jnz %.33, @passed.32, @failed.31
43 @failed.31
44         call $abort()
45 @passed.32
46         ret 0