(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
fuse-caller-save-xmm-run.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2 -msse -fipa-ra" } */
       3  
       4  typedef double v2df __attribute__((vector_size (16)));
       5  
       6  static v2df __attribute__((noinline))
       7  bar (v2df a)
       8  {
       9    return a + (v2df){ 3.0, 3.0 };
      10  }
      11  
      12  v2df __attribute__((noinline))
      13  foo (v2df y)
      14  {
      15    return y + bar (y);
      16  }
      17  
      18  int
      19  main (void)
      20  {
      21    int success;
      22    union {
      23      v2df v;
      24      double d[2];
      25    } u;
      26  
      27    u.v = foo ((v2df){ 5.0, 5.0});
      28    success = (u.d[0] == 13.0
      29  	     && u.d[1] == 13.0);
      30  
      31    return !success;
      32  }