PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / 20180112-1.c
blobd01ac72db88b7ea7c8340738e285e9d7148cde40
1 /* PR rtl-optimization/83565 */
2 /* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */
4 extern void abort (void);
6 typedef __UINT32_TYPE__ u32;
8 u32 bug (u32 * result) __attribute__((noinline));
9 u32 bug (u32 * result)
11 volatile u32 ss = 0xFFFFffff;
12 volatile u32 d = 0xEEEEeeee;
13 u32 tt = d & 0x00800000;
14 u32 r = tt << 8;
16 r = (r >> 31) | (r << 1);
18 u32 u = r^ss;
19 u32 off = u >> 1;
21 *result = tt;
22 return off;
25 int main(void)
27 u32 l;
28 u32 off = bug(&l);
29 if (off != 0x7fffffff)
30 abort ();
31 return 0;