1  /* { dg-do compile } */
       2  /* { dg-additional-options "-fdump-tree-slp-details" } */
       3  
       4  #define N 4
       5  
       6  int s1[N], s2[N], s3[N];
       7  void escape(int, int, int, int);
       8  
       9  void
      10  foo ()
      11  {
      12    int t1, t2, t3, t4;
      13  
      14    t1 = s1[0] + s2[0] + s3[0];
      15    t2 = s1[1] + s2[1] + s3[1];
      16    t3 = s1[2] + s2[2] + s3[2];
      17    t4 = s1[3] + s2[3] + s3[3];
      18  
      19    s3[0] = t1 - s1[0] * s2[0];
      20    s3[1] = t2 - s1[1] * s2[1];
      21    s3[2] = t3 - s1[2] * s2[2];
      22    s3[3] = t4 - s1[3] * s2[3];
      23  
      24    escape (t1, t2, t3, t4);
      25  }
      26  
      27  /* { dg-final { scan-tree-dump-not "vectorization is not profitable" "slp2" } } */
      28  /* { dg-final { scan-tree-dump "optimized: basic block" "slp2" } } */