2 /* { dg-do run { target { bitint && int32plus } } } */
3 /* { dg-options "-std=gnu23" } */
4 /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O0" "-O2" } } */
5 /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
7 #ifdef __SIZEOF_INT128__
8 #define int128_val(x, y) x
9 #define int128 __int128
11 #define int128_val(x, y) y
15 #if __BITINT_MAXWIDTH__ >= 575
16 __attribute__((noipa
)) void
17 test575 (_BitInt(575) *a
, int b
, int128 c
, unsigned int d
, unsigned int128 e
,
18 int f
, int g
, int128 h
, unsigned int i
, unsigned int128 j
,
19 _BitInt(575) *p
, int *r
)
25 p
[0] = ((_BitInt(575)) g
) << f
;
26 p
[1] = ((_BitInt(575)) h
) << f
;
27 p
[2] = ((_BitInt(575)) i
) << f
;
28 p
[3] = ((_BitInt(575)) j
) << f
;
29 p
[4] = ((unsigned _BitInt(575)) g
) >> f
;
30 p
[5] = ((unsigned _BitInt(575)) h
) >> f
;
31 p
[6] = ((unsigned _BitInt(575)) i
) >> f
;
32 p
[7] = ((unsigned _BitInt(575)) j
) >> f
;
35 _BitInt(575) a575
= -37335077053906536248085160049937130279057714970866686325204063930452920311842187828021093674979068589644104434897698233644810906211958229904753029173357201859433853689386323wb
;
41 #if __BITINT_MAXWIDTH__ >= 575
43 _BitInt(575) b575
[24];
45 #ifdef __SIZEOF_INT128__
46 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1
48 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1
51 static _BitInt(575) eb575
[24] = {
52 #ifdef __SIZEOF_INT128__
53 20329374714419634196895318109902140892207297977139593216wb
,
54 -1712803473999893185713719997722323414959591613021414111612885795955340439235139207168wb
,
55 24459948786509903061037979887398299261116601758241521664wb
,
56 266261172647138617905132542512773540174694514212873439044818615992883558384930914304wb
,
58 10830740992659433045228180406808920716548582325686783496759685861775864483615725089999900023844295226942934417817982702456930303wb
,
61 7830590302633896968192wb
,
62 -659747899885375730707839505890120862245951494946816wb
,
63 9421629561223530938368wb
,
64 102560073085756776493593811652595116491535756034048wb
,
66 28118211215894977392565865673037386617935606989386978956879722328823984879196799189494004288149317857187005691459505594520051662846839338948136222520490158359458wb
,
68 5302231504909973601023497wb
,
70 -150009304862891379049833518795394607479wb
,
72 23319460771235020841594135084186545212wb
,
74 -150009304862891379049833518795394607479wb
,
76 23319460771235020841594135084186545212wb
78 20329374714419634196895318109902140892207297977139593216wb
,
79 479555224749202520035584085735030365824602865664wb
,
80 24459948786509903061037979887398299261116601758241521664wb
,
81 171269723124715185726994316333939416365929594880wb
,
86 7830590302633896968192wb
,
88 9421629561223530938368wb
,
104 test575 (&a575
, 1780470098, int128_val (-150009304862891379049833518795394607479wb
, 42),
105 2142230542U, int128_val (23319460771235020841594135084186545212uwb
, 15),
106 153, 1780470098, int128_val (-150009304862891379049833518795394607479wb
, 42),
107 2142230542U, int128_val (23319460771235020841594135084186545212uwb
, 15),
110 test575 (&a575
, 1780470098, int128_val (-150009304862891379049833518795394607479wb
, 42),
111 2142230542U, int128_val (23319460771235020841594135084186545212uwb
, 15),
112 42, 1780470098, int128_val (-150009304862891379049833518795394607479wb
, 42),
113 2142230542U, int128_val (23319460771235020841594135084186545212uwb
, 15),
115 a575
= -150009304862891379049833518795394607478wb
;
116 test575 (&a575
, 1780470098, int128_val (-150009304862891379049833518795394607479wb
, 42),
117 2142230542U, int128_val (23319460771235020841594135084186545212uwb
, 15),
118 0, 1780470098, int128_val (-150009304862891379049833518795394607479wb
, 42),
119 2142230542U, int128_val (23319460771235020841594135084186545212uwb
, 15),
121 for (int i
= 0; i
< 12; ++i
)
124 for (int i
= 0; i
< 24; ++i
)
125 if (b575
[i
] != eb575
[i
])