131
|
1 /* PR target/84524 */
|
|
2
|
|
3 __attribute__((noipa)) void
|
|
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
|
|
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 }
|