1 /* PR 15184 first two tests, plus two addition ones. */
2 /* { dg-do compile { target ia32 } } */
3 /* { dg-options "-O2 -march=pentiumpro" } */
5 #define regparm __attribute__((__regparm__(1)))
9 void regparm
f0(unsigned char c
)
11 x
= (x
& 0xFFFFFF00) | (unsigned int)c
;
14 void regparm
f1(unsigned char c
)
16 x
= (x
& 0xFFFF00FF) | ((unsigned int)c
<< 8);
19 void regparm
f2(unsigned char c
)
21 x
= (x
& 0xFF00FFFF) | ((unsigned int)c
<< 16);
23 void regparm
f3(unsigned char c
)
25 x
= (x
& 0x00FFFFFF) | ((unsigned int)c
<< 24);
29 /* Each function should compile down to a byte move from
30 the input register into x, possibly at an offset within x. */
31 /* { dg-final { scan-assembler-times "movb\[ \\t\]+%al" 4 } } */