1  /* { dg-do run { target { ! ia32 } } } */
       2  /* { dg-options "-O2 -fno-strict-aliasing -msse2 -mno-mmx" } */
       3  
       4  #include "sse2-check.h"
       5  #include "mmx-vals.h"
       6  
       7  __attribute__((noinline, noclone))
       8  static void
       9  test_to_long_long  (long long *ll1, long long *r)
      10  {
      11    __m64 m = *(__m64 *) ll1; 
      12    *r = _mm_cvtm64_si64 (m);
      13  }
      14  
      15  /* Routine to manually compute the results */
      16  static void
      17  compute_correct_result (long long *ll1, long long *r)
      18  {
      19    *r = *ll1;
      20  }
      21  
      22  static void
      23  sse2_test (void)
      24  {
      25    int i;
      26    long long r, ck;
      27    int fail = 0;
      28  
      29    /* Run the MMX tests */
      30    for (i = 0; i < MMX_num_ops; i++)
      31      {
      32        test_to_long_long (&MMXops[i], &r);
      33        compute_correct_result (&MMXops[i], &ck);
      34        if (ck != r)
      35  	fail++;
      36      }
      37  
      38    if (fail != 0)
      39      abort ();
      40  }