(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr95021-1.c
       1  /* { dg-do compile { target ia32 } } */
       2  /* { dg-options "-O2 -msse2 -mstv -mpreferred-stack-boundary=4 -mno-stackrealign -W" } */
       3  /* { dg-final { scan-assembler "movq\[ \t\]%xmm\[0-9\]+, \\(%esp\\)" } } */
       4  /* { dg-final { scan-assembler-not "psrlq" } } */
       5  
       6  #include <setjmp.h>
       7  
       8  extern jmp_buf buf;
       9  
      10  extern long long *target_p;
      11  extern long long *c;
      12  
      13  extern void foo (long long);
      14  
      15  __attribute__ ((noclone, noinline))
      16  void
      17  bar (void)
      18  {
      19    if (setjmp (buf))
      20      {
      21        long long target = *target_p;
      22        *c = target;
      23        foo (target);
      24      }
      25    else
      26      foo (0);
      27  }