1  /* { dg-do run } */
       2  /* { dg-options "-O3 -mpower8-vector -Wno-psabi" } */
       3  /* { dg-require-effective-target p8vector_hw } */
       4  
       5  #define NO_WARN_X86_INTRINSICS 1
       6  
       7  #ifndef CHECK_H
       8  #define CHECK_H "sse-check.h"
       9  #endif
      10  
      11  #include CHECK_H
      12  
      13  #ifndef TEST
      14  #define TEST sse_test_movss_1
      15  #endif
      16  
      17  #include <xmmintrin.h>
      18  
      19  static __m128
      20  __attribute__((noinline, unused))
      21  test (float *e)
      22  {
      23    __m128 result;
      24  
      25    __asm("" : "+b"(e));
      26  
      27    result = _mm_load_ss (e);
      28    __asm("" : "+v"(result));
      29    return result;
      30  }
      31  
      32  static void
      33  TEST (void)
      34  {
      35    union128 u, s1;
      36    float e[4] = {1.1, 2.2, 3.3, 4.4};
      37   
      38    s1.x = _mm_set_ps (2134.3343,1234.635654, 1.2234, 876.8976);
      39  
      40    u.x = s1.x;
      41    u.x = test (e);
      42  
      43    e[1] = u.a[1];
      44    e[2] = u.a[2];
      45    e[3] = u.a[3];   
      46  
      47    if (check_union128 (u, e))
      48      abort ();
      49  }