1  /* { dg-do run } */
       2  /* { dg-options "-O2 -msse" } */
       3  /* { dg-require-effective-target sse } */
       4  
       5  #include "sse-check.h"
       6  
       7  #include <xmmintrin.h>
       8  
       9  void __attribute__((noinline))
      10  sse_test (void)
      11  {
      12    char image[4];
      13    __m128 image4;
      14    float out[4] __attribute__ ((aligned (16)));
      15    int i;
      16  
      17    for (i = 0; i < 4; i++)
      18      image[i] = i + 1;
      19  
      20    image4 =
      21      _mm_cvtpi8_ps (_mm_setr_pi8
      22  		   (image[0], image[1], image[2], image[3], 0, 0, 0, 0));
      23    _mm_store_ps (out, image4);
      24    _mm_empty ();
      25  
      26    for (i = 0; i < 4; i++)
      27      if (out[i] != (float) (i + 1))
      28        abort ();
      29  
      30    image4 =
      31      _mm_cvtpu8_ps (_mm_setr_pi8
      32  		   (image[0], image[1], image[2], image[3], 0, 0, 0, 0));
      33    _mm_store_ps (out, image4);
      34    _mm_empty ();
      35  
      36    for (i = 0; i < 4; i++)
      37      if (out[i] != (float) (i + 1))
      38        abort ();
      39  }