aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture/bitint-75.c
blob: 365e6d623c15871a2fb88a1ce4959a5788d60877 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* PR middle-end/117847 */
/* { 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__ >= 512
typedef unsigned _BitInt(512) B;

__attribute__((noipa)) B
foo (B a, int r)
{
  B b = __builtin_stdc_rotate_left (a, r);
  return b;
}
#endif

int
main ()
{
#if __BITINT_MAXWIDTH__ >= 512
  B a = 0x4ad4fdecc8717d7c6f8b1afb82fdb742477ef2ab34057d1dcc79ba30c38a352dea3253c8c25126d98da02213ad54b90d2998f947941ea4b45e71c61dc1fe3192uwb;
  B x = foo (a, 0);
  if (x != a)
    __builtin_abort ();
#endif
}