2 /* { dg-do run { target bitint } } */
3 /* { dg-options "-std=c23 -pedantic-errors" } */
4 /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O0" "-O2" } } */
5 /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
7 __attribute__((noipa
)) void
8 foo (_BitInt(6) a
, _BitInt(27) b
, _BitInt(6) *p
, _BitInt(27) *q
, float c
)
12 q
[1] = (unsigned _BitInt(6)) a
;
13 q
[2] = (unsigned _BitInt(9)) a
;
21 q
[10] = b
<< (-20wb
- a
);
22 q
[11] = (b
* 131wb
) >> (-20wb
- a
);
50 q
[39] = q
[39] ? a
: b
;
84 static _BitInt(27) qe
[41] = {
85 -25wb
, 39wb
, 487wb
, 17wb
, -7wb
, -19wb
, -31wb
, -150wb
, -4wb
, -1,
86 192wb
, 24wb
, 8wb
, 10wb
, 10wb
, 12wb
, 0, 1wb
, 0wb
, 1,
87 0, 1, 1, 1wbu
, 0, 6wb
, -25wb
, -31wb
, 24wb
, 32wb
,
88 -6wb
, -2wb
, 2uwb
, 320wb
, 192wb
, 7wb
, 30wb
, -30wb
, 1, -25wb
,
106 foo (-25wb
, 6wb
, &p
, q
, 17.0f
);
109 q
[38] -= sizeof (p
) - 1;
110 for (int i
= 0; i
< 41; ++i
)