1  /* { dg-do compile } */
       2  /* { dg-options "-msse2 -O2" } */
       3  
       4  /* We used to ICE because of a bogous pattern.  */
       5  
       6  typedef double __v2df __attribute__ ((__vector_size__ (16)));
       7  typedef __v2df __m128d;
       8  static __inline __m128d __attribute__((__always_inline__)) _mm_set1_pd (double __F) {
       9    return __extension__ (__m128d){__F, __F};
      10  }
      11  static __inline __m128d __attribute__((__always_inline__)) _mm_move_sd (__m128d __A, __m128d __B) {
      12    return (__m128d) __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B);
      13  }
      14  void g(__m128d b);
      15  __m128d cross(__m128d tmp9)
      16  {
      17    __m128d t1 = _mm_set1_pd(1.0);
      18    __m128d tmp10 = _mm_move_sd(t1, tmp9);
      19    return tmp10;
      20  }