2 /* { dg-options "-O3" } */
10 #define TYPE2 long long
13 signed TYPE1 a[N], b[N], g[N];
14 unsigned TYPE1 c[N], h[N];
15 signed TYPE2 d[N], e[N], j[N];
16 unsigned TYPE2 f[N], k[N];
18 __attribute__((noinline)) void
22 for (i = 0; i < N; i++)
26 __attribute__((noinline)) void
30 for (i = 0; i < N; i++)
34 __attribute__((noinline)) void
38 for (i = 0; i < N; i++)
42 __attribute__((noinline)) void
46 for (i = 0; i < N; i++)
50 __attribute__((noinline)) void
54 for (i = 0; i < N; i++)
58 __attribute__((noinline)) void
62 for (i = 0; i < N; i++)
66 __attribute__((noinline)) void
70 for (i = 0; i < N; i++)
74 __attribute__((noinline)) void
78 for (i = 0; i < N; i++)
82 __attribute__((noinline)) void
86 for (i = 0; i < N; i++)
94 for (i = 0; i < N; i++)
97 c[i] = (rand () << 1) | (rand () & 1);
98 b[i] = (i * 85) & (sizeof (TYPE1) * __CHAR_BIT__ - 1);
100 d[i] = (rand () << 1) | (rand () & 1);
101 d[i] |= (unsigned long long) c[i] << 32;
102 e[i] = (i * 85) & (sizeof (TYPE2) * __CHAR_BIT__ - 1);
109 for (i = 0; i < N; i++)
110 if (g[i] != (signed TYPE1) (a[i] << b[i])
111 || h[i] != (unsigned TYPE1) (c[i] >> b[i])
112 || j[i] != (signed TYPE2) (d[i] << e[i])
113 || k[i] != (unsigned TYPE2) (f[i] >> e[i]))
118 for (i = 0; i < N; i++)
119 if (g[i] != (signed TYPE1) (a[i] >> b[i])
120 || j[i] != (signed TYPE2) (d[i] >> e[i])
121 || k[i] != (unsigned TYPE2) (f[i] >> b[i]))
124 for (i = 0; i < N; i++)
125 if (j[i] != (signed TYPE2) (d[i] << b[i]))
128 for (i = 0; i < N; i++)
129 if (j[i] != (signed TYPE2) (d[i] >> b[i]))