libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / bitint-56.c
blob6a76a812a0b8a38d053a553ea32787582a93f858
1 /* PR tree-optimization/113753 */
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 #if __BITINT_MAXWIDTH__ >= 129
8 unsigned _BitInt(128)
9 foo (unsigned u, unsigned _BitInt(128) a, unsigned _BitInt(128) b)
11 unsigned _BitInt(129) m = a % b;
12 return u * m / u;
14 #endif
16 int
17 main ()
19 #if __BITINT_MAXWIDTH__ >= 129
20 if (foo (0xfa637c33, 0x37af7fe8b0000000000000000wb,
21 0xfffffffff0000000000000000wb)
22 != 0x16f7e93f6d726b38b38d0b753wb)
23 __builtin_abort ();
24 #endif