blob: d8658095bc8b6c0f117d01675976005c2ed9818e [file] [log] [blame]
/* { dg-do run { target int128 } } */
/* { dg-require-effective-target sse2_runtime } */
/* { dg-options "-O2 -msse2 -mstv -W" } */
#include <stdlib.h>
#include "pr95021-4.c"
jmp_buf buf;
__int128 *target_p;
__int128 *c;
int count;
__attribute__ ((noclone, noinline))
void
foo (__int128 i1, __int128 i2, __int128 i3, __int128 x)
{
if (i1 != 0xbadbeef1)
abort ();
if (i2 != 0x2badbeef)
abort ();
if (i3 != 0xbad3beef)
abort ();
if (x != *c)
abort ();
if (!count)
{
count++;
longjmp (buf, 1);
}
}
int
main ()
{
__int128 val = 30;
__int128 local = 0;
target_p = &val;
c = &local;
bar ();
if (val != local)
abort ();
return 0;
}