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 9void __attribute__((noinline)) 10sse_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