| /* PR rtl-optimization/70467 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -mno-sse" } */ |
| |
| void foo (unsigned long long *); |
| |
| void |
| bar (void) |
| { |
| unsigned long long a; |
| foo (&a); |
| a &= 0x7fffffffffffffffULL; |
| foo (&a); |
| a &= 0xffffffff7fffffffULL; |
| foo (&a); |
| a &= 0x7fffffff00000000ULL; |
| foo (&a); |
| a &= 0x000000007fffffffULL; |
| foo (&a); |
| a &= 0x00000000ffffffffULL; |
| foo (&a); |
| a &= 0xffffffff00000000ULL; |
| foo (&a); |
| a |= 0x7fffffffffffffffULL; |
| foo (&a); |
| a |= 0xffffffff7fffffffULL; |
| foo (&a); |
| a |= 0x7fffffff00000000ULL; |
| foo (&a); |
| a |= 0x000000007fffffffULL; |
| foo (&a); |
| a |= 0x00000000ffffffffULL; |
| foo (&a); |
| a |= 0xffffffff00000000ULL; |
| foo (&a); |
| a ^= 0x7fffffffffffffffULL; |
| foo (&a); |
| a ^= 0xffffffff7fffffffULL; |
| foo (&a); |
| a ^= 0x7fffffff00000000ULL; |
| foo (&a); |
| a ^= 0x000000007fffffffULL; |
| foo (&a); |
| a ^= 0x00000000ffffffffULL; |
| foo (&a); |
| a ^= 0xffffffff00000000ULL; |
| foo (&a); |
| } |
| |
| /* { dg-final { scan-assembler-not "andl\[ \t\]*.-1," { target ia32 } } } */ |
| /* { dg-final { scan-assembler-not "andl\[ \t\]*.0," { target ia32 } } } */ |
| /* { dg-final { scan-assembler-not "orl\[ \t\]*.-1," { target ia32 } } } */ |
| /* { dg-final { scan-assembler-not "orl\[ \t\]*.0," { target ia32 } } } */ |
| /* { dg-final { scan-assembler-not "xorl\[ \t\]*.-1," { target ia32 } } } */ |
| /* { dg-final { scan-assembler-not "xorl\[ \t\]*.0," { target ia32 } } } */ |