/* PR tree-optimization/116224 */ /* { dg-do run { target bitint } } */ /* { dg-options "-std=c23" } */ /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O0" "-O2" } } */ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ #if __BITINT_MAXWIDTH__ >= 65 #define N 65 #else #define N 63 #endif signed char g; int foo (signed char c, int i, _BitInt(N) b) { __builtin_memmove (&g, &b, 1); return b / i / c; } int main () { int x = foo (-15, -15, 900); if (x != 4) __builtin_abort (); }