| /* PR target/84524 */ |
| |
| __attribute__((noipa)) void |
| foo (unsigned short *x) |
| { |
| unsigned short i, v; |
| unsigned char j; |
| for (i = 0; i < 256; i++) |
| { |
| v = i << 8; |
| for (j = 0; j < 8; j++) |
| if (v & 0x8000) |
| v = (v << 1) ^ 0x1021; |
| else |
| v = v << 1; |
| x[i] = v; |
| } |
| } |
| |
| int |
| main () |
| { |
| unsigned short a[256]; |
| |
| foo (a); |
| for (int i = 0; i < 256; i++) |
| { |
| unsigned short v = i << 8; |
| for (int j = 0; j < 8; j++) |
| { |
| asm volatile ("" : "+r" (v)); |
| if (v & 0x8000) |
| v = (v << 1) ^ 0x1021; |
| else |
| v = v << 1; |
| } |
| if (a[i] != v) |
| __builtin_abort (); |
| } |
| return 0; |
| } |