(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
bb-slp-74.c
       1  /* { dg-do run } */
       2  /* { dg-require-effective-target vect_double } */
       3  
       4  #include "tree-vect.h"
       5  
       6  double a[2], b[2], c[2];
       7  
       8  void __attribute__((noipa)) foo ()
       9  {
      10    double tem0 = a[1] + b[1];
      11    double tem1 = a[0] - b[0];
      12    c[0] = 2. * tem0;
      13    c[1] = 5. * tem1;
      14  }
      15  
      16  int main()
      17  {
      18    check_vect ();
      19  
      20    a[0] = 1.; a[1] = 3.;
      21    b[0] = -5.; b[1] = 13.;
      22    foo ();
      23    if (c[0] != 32. || c[1] != 30.)
      24      __builtin_abort ();
      25    return 0;
      26  }
      27  
      28  /* We'd like to see at most one VEC_PERM_EXPR, not one for a blend
      29     and one for a permute materialized somewhere else.  But addsub
      30     pattern recog can likely get in the way here.  */
      31  /* { dg-final { scan-tree-dump-times "  \[^ \]\+ = VEC_PERM_EXPR" 1 "slp2" } } */