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