/* { dg-do compile { target int128 } } */ /* { dg-options "-O2 -msse2 -mstv -W" } */ /* { dg-final { scan-assembler "(movaps|vmovdqa)\[ \t\]%xmm\[0-9\]+, \\(%rsp\\)" } } */ #include extern jmp_buf buf; extern __int128 *target_p; __int128 *c; extern int count; extern void foo (__int128, __int128, __int128, __int128); __attribute__ ((noclone, noinline)) void bar (void) { if (setjmp (buf)) { __int128 target = *target_p; *c = target; foo (0xbadbeef1, 0x2badbeef, 0xbad3beef, target); } else foo (0xbadbeef1, 0x2badbeef, 0xbad3beef, 0); }