29 lines
521 B
C
29 lines
521 B
C
/* { dg-do run } */
|
|
/* { dg-require-effective-target int128 } */
|
|
/* { dg-options "-Og -w -Wno-psabi" } */
|
|
|
|
typedef unsigned __int128 u128;
|
|
typedef unsigned __int128 v64u128 __attribute__ ((vector_size (64)));
|
|
|
|
u128 __attribute__ ((noinline, noclone))
|
|
foo (unsigned c, v64u128 v)
|
|
{
|
|
v64u128 u;
|
|
if (c) {
|
|
u = (v64u128){(u128)0, (u128)0};
|
|
} else {
|
|
u = (v64u128){(u128)0, (u128)1};
|
|
}
|
|
u += v;
|
|
return u[1];
|
|
}
|
|
|
|
int
|
|
main ()
|
|
{
|
|
u128 x = foo (0, (v64u128){ });
|
|
if (x != 1)
|
|
__builtin_abort();
|
|
return 0;
|
|
}
|