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 (unsigned _BitInt(25) a
, unsigned _BitInt(27) b
, unsigned _BitInt(25) *p
, unsigned _BitInt(27) *q
, float c
)
12 q
[1] = (signed _BitInt(25)) a
;
13 q
[2] = (_BitInt(12)) a
;
21 q
[10] = b
<< (24320393uwb
- a
);
22 q
[11] = (b
* 131uwb
) >> (24320393uwb
- a
);
44 q
[33] <<= (125900uwb
- b
);
45 q
[34] >>= (125901uwb
- b
);
50 q
[39] = q
[39] ? a
: b
;
82 unsigned _BitInt(25) p
;
83 unsigned _BitInt(27) q
[41];
84 static unsigned _BitInt(27) qe
[41] = {
85 24320389uwb
, 124983685uwb
, 134216069uwb
, 42uwb
, 24320407uwb
,
86 24446286uwb
, 24194492uwb
, 89202797uwb
, 193uwb
, 22268uwb
,
87 2014352uwb
, 1030781uwb
, 8uwb
, 10uwb
, 10uwb
,
88 12uwb
, 0uwb
, 1uwb
, 1uwb
, 0uwb
,
89 1uwb
, 0uwb
, 1uwb
, 1uwb
, 0uwb
,
90 67969uwb
, 24378317uwb
, 24310348uwb
, 9234042uwb
, 109897346uwb
,
91 125897uwb
, 0uwb
, 52uwb
, 40uwb
, 771uwb
,
92 5uwb
, 125917uwb
, 24320384uwb
, 1uwb
, 24320389uwb
,
110 foo (24320389uwb
, 125897uwb
, &p
, q
, 42.0f
);
113 q
[38] -= sizeof (p
) - 1;
114 for (int i
= 0; i
< 41; ++i
)