/* { 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; | |
} |