1  /* A const vector operand is forced into a register in
       2     s390_expand_vcond.
       3     This testcase once failed because the target mode (v2di) was picked
       4     for the reg instead of the mode of the other comparison
       5     operand.  */
       6  
       7  /* { dg-do compile { target { s390*-*-* } } } */
       8  /* { dg-options "-O3 -mzarch -march=z13" } */
       9  
      10  typedef __attribute__((vector_size(16))) long   v2di;
      11  typedef __attribute__((vector_size(16))) double v2df;
      12  
      13  v2di
      14  foo (v2df a)
      15  {
      16    return a == (v2df){ 0.0, 0.0 };
      17  }
      18  
      19  v2di
      20  bar (v2df a)
      21  {
      22    return (v2df){ 1.0, 1.0 } == (v2df){ 0.0, 0.0 };
      23  }