1 /* PR target/84524 */ 2 3 __attribute__((noipa)) void foo(unsigned short * x)4foo (unsigned short *x) 5 { 6 unsigned short i, v; 7 unsigned char j; 8 for (i = 0; i < 256; i++) 9 { 10 v = i << 8; 11 for (j = 0; j < 8; j++) 12 if (v & 0x8000) 13 v = (v << 1) ^ 0x1021; 14 else 15 v = v << 1; 16 x[i] = v; 17 } 18 } 19 20 int main()21main () 22 { 23 unsigned short a[256]; 24 25 foo (a); 26 for (int i = 0; i < 256; i++) 27 { 28 unsigned short v = i << 8; 29 for (int j = 0; j < 8; j++) 30 { 31 asm volatile ("" : "+r" (v)); 32 if (v & 0x8000) 33 v = (v << 1) ^ 0x1021; 34 else 35 v = v << 1; 36 } 37 if (a[i] != v) 38 __builtin_abort (); 39 } 40 return 0; 41 } 42