blob: 3bc964c443de09c9cd06f4cee1a1135722c84bd3 [file] [log] [blame]
/* PR tree-optimization/113774 */
/* { dg-do run { target bitint } } */
/* { dg-options "-std=c23 -pedantic-errors" } */
/* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O0" "-O2" } } */
/* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
#if __BITINT_MAXWIDTH__ >= 512
unsigned _BitInt(512) u;
unsigned _BitInt(512) v;
void
foo (unsigned _BitInt(255) a, unsigned _BitInt(257) b, unsigned _BitInt(512) *r)
{
b += v;
b |= a - b;
unsigned _BitInt(512) c = b * 6;
unsigned _BitInt(512) h = c >> u;
*r = h;
}
#endif
int
main ()
{
#if __BITINT_MAXWIDTH__ >= 512
unsigned _BitInt(512) x;
foo (0x10000000000000000wb, 0x10000000000000001wb, &x);
if (x != 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffawb)
__builtin_abort ();
#endif
return 0;
}