1 /* PR target/84524 */
2 
3 __attribute__((noipa)) void
foo(unsigned short * x)4 foo (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()21 main ()
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