1  /* PR target/98522 */
       2  /* { dg-do run { target { ! ia32 } } } */
       3  /* { dg-options "-O2" } */
       4  /* { dg-require-effective-target fenv_exceptions } */
       5  
       6  #include <emmintrin.h>
       7  #include <fenv.h>
       8  
       9  __m64
      10  __attribute__((noinline))
      11  test_cvt (__m128 a)
      12  {
      13    return _mm_cvt_ps2pi (a);
      14  }
      15  
      16  __m64
      17  __attribute__((noinline))
      18  test_cvtt (__m128 a)
      19  {
      20    return _mm_cvtt_ps2pi (a);
      21  }
      22  
      23  int
      24  main ()
      25  {
      26    __m128 x = (__m128)(__m128i){0x0000000000000000LL, 0x7fffffffffffffffLL};
      27    volatile __m64 y;
      28  
      29    feclearexcept (FE_INVALID);
      30  
      31    y = test_cvt(x);
      32    y = test_cvtt (x);
      33  
      34      if (fetestexcept (FE_INVALID))
      35      __builtin_abort ();
      36  
      37    return 0;
      38  }
      39