1 /* PR tree-optimization/51581 */
3 /* { dg-require-effective-target int32plus } */
5 extern void abort (void);
9 unsigned int b
[N
], d
[N
];
11 __attribute__((noinline
, noclone
)) void
15 for (i
= 0; i
< N
; i
++)
19 __attribute__((noinline
, noclone
)) void
23 for (i
= 0; i
< N
; i
++)
27 __attribute__((noinline
, noclone
)) void
31 for (i
= 0; i
< N
; i
++)
35 __attribute__((noinline
, noclone
)) void
39 for (i
= 0; i
< N
; i
++)
43 __attribute__((noinline
, noclone
)) void
47 for (i
= 0; i
< N
; i
++)
51 __attribute__((noinline
, noclone
)) void
55 for (i
= 0; i
< N
; i
++)
59 #if __SIZEOF_INT__ == 4 && __SIZEOF_LONG_LONG__ == 8
60 __attribute__((noinline
, noclone
)) void
64 for (i
= 0; i
< N
; i
++)
65 c
[i
] = (int) ((unsigned long long) (a
[i
] * 0x55555556LL
) >> 32) - (a
[i
] >> 31);
68 __attribute__((noinline
, noclone
)) void
72 for (i
= 0; i
< N
; i
++)
73 d
[i
] = ((unsigned int) ((b
[i
] * 0xaaaaaaabULL
) >> 32) >> 1);
76 __attribute__((noinline
, noclone
)) void
80 for (i
= 0; i
< N
; i
++)
81 c
[i
] = (((int) ((unsigned long long) (a
[i
] * 0x38e38e39LL
) >> 32)) >> 2) - (a
[i
] >> 31);
84 __attribute__((noinline
, noclone
)) void
88 for (i
= 0; i
< N
; i
++)
89 d
[i
] = (unsigned int) ((b
[i
] * 0x38e38e39ULL
) >> 32) >> 2;
92 __attribute__((noinline
, noclone
)) void
96 for (i
= 0; i
< N
; i
++)
97 c
[i
] = (((int) ((unsigned long long) (a
[i
] * 0x6bca1af3LL
) >> 32)) >> 3) - (a
[i
] >> 31);
100 __attribute__((noinline
, noclone
)) void
104 for (i
= 0; i
< N
; i
++)
106 unsigned int tmp
= (b
[i
] * 0xaf286bcbULL
) >> 32;
107 d
[i
] = (((b
[i
] - tmp
) >> 1) + tmp
) >> 4;
116 for (i
= 0; i
< N
; i
++)
122 a
[0] = -__INT_MAX__
- 1;
124 a
[N
- 1] = __INT_MAX__
;
128 for (i
= 0; i
< N
; i
++)
129 if (c
[i
] != a
[i
] / 3 || d
[i
] != b
[i
] / 3)
133 for (i
= 0; i
< N
; i
++)
134 if (c
[i
] != a
[i
] / 18 || d
[i
] != b
[i
] / 18)
138 for (i
= 0; i
< N
; i
++)
139 if (c
[i
] != a
[i
] / 19 || d
[i
] != b
[i
] / 19)
141 #if __SIZEOF_INT__ == 4 && __SIZEOF_LONG_LONG__ == 8
144 for (i
= 0; i
< N
; i
++)
145 if (c
[i
] != a
[i
] / 3 || d
[i
] != b
[i
] / 3)
149 for (i
= 0; i
< N
; i
++)
150 if (c
[i
] != a
[i
] / 18 || d
[i
] != b
[i
] / 18)
154 for (i
= 0; i
< N
; i
++)
155 if (c
[i
] != a
[i
] / 19 || d
[i
] != b
[i
] / 19)