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))
sse_test(void)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 }
40