Add AMD SSE5 support; Add iterator over function arguments; Add stdarg_p, prototype_p...
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / sse-19.c
blob43c090bd4e1e25b71520ce89ff307e45e81334b7
1 /* { dg-do compile } */
2 /* { dg-options "-O3 -msse2" } */
3 /* { dg-final { scan-assembler "punpcklbw" } } */
4 extern void abort();
5 #include <emmintrin.h>
6 __m128i foo (char) __attribute__((noinline));
7 __m128i foo (char x) {
8 return _mm_set1_epi8(x);
10 __m128i bar (char) __attribute__((noinline));
11 __m128i bar (char x) {
12 return _mm_set_epi8 (x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x);
15 main() {
16 int i, j;
17 union u { __m128i v; char c[16]; };
18 union u x, y;
19 for (i = -128; i <= 127; i++)
21 x.v = foo ((char)i);
22 y.v = bar ((char)i);
23 for (j=0; j<16; j++)
24 if (x.c[j] != y.c[j])
25 abort();
27 return 0;