1  /* Check for vectorization of mixed conditionals.  */
       2  /* { dg-do compile { target { s390*-*-* } } } */
       3  /* { dg-options "-O2 -march=z14 -mzarch -ftree-vectorize -fdump-tree-vect-details" } */
       4  
       5  double xd[1024];
       6  double zd[1024];
       7  double wd[1024];
       8  
       9  long xl[1024];
      10  long zl[1024];
      11  long wl[1024];
      12  
      13  void foold ()
      14  {
      15    int i;
      16    for (i = 0; i < 1024; ++i)
      17      zd[i] = xl[i] ? zd[i] : wd[i];
      18  }
      19  
      20  void foodl ()
      21  {
      22    int i;
      23    for (i = 0; i < 1024; ++i)
      24      zl[i] = xd[i] ? zl[i] : wl[i];
      25  }
      26  
      27  void foold2 ()
      28  {
      29    int i;
      30    for (i = 0; i < 1024; ++i)
      31      zd[i] = (xd[i] > 0) ? zd[i] : wd[i];
      32  }
      33  
      34  void foold3 ()
      35  {
      36    int i;
      37    for (i = 0; i < 1024; ++i)
      38      zd[i] = (xd[i] > 0. & wd[i] < 0.) ? zd[i] : wd[i];
      39  }
      40  
      41  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 4 "vect" } } */