1 /* { dg-do run { target { ! avr_tiny } } } */
2 /* { dg-options "-Os -fno-split-wide-types" } */
4 /* This testcase should uncover bugs like
9 The inline asm just serves to direct y into the Y register.
10 Otherwise, it is hard to write a "stable" test case that
11 also fails with slight variations in source code, middle- resp.
14 The problem is that Y is also the frame-pointer, and
15 avr.c:avr_hard_regno_mode_ok disallows QI to get in Y-reg.
16 However, the y.a = 0 generates a
17 (set (subreg:QI (reg:HI pseudo)) ...)
18 where pseudo gets allocated to Y.
20 Reload fails to generate the right spill.
32 __asm
volatile ("ldi %B0, 56" : "+y" (y
));
34 __asm
volatile ("; y = %0" : "+y" (y
));