blob: c24e1e26f2df856fe7ef737154c603803a2e0c68 [file] [log] [blame]
/* Make sure that the S/390 specific shift_count_operand
predicate work properly. */
/* { dg-do compile } */
/* { dg-options "-O3" } */
unsigned long long
f (unsigned long long a, unsigned long b)
{
asm ("" : : :
#ifdef __s390x__
"r13", "r14",
#endif
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11", "r12");
return a << ((b + 3) & 63);
}
unsigned long long
g (unsigned long long a, char **b , int c, int d, int e, int f)
{
char buffer [4096];
*b = &buffer[0];
return a << ((unsigned long)&f & 63);
}
unsigned long long
h (unsigned long long a, int b, int c, int d, int e, int f)
{
return a << (((unsigned long)&f + 3));
}