URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.target/] [i386/] [sse-19.c] - Rev 318
Compare with Previous | Blame | View Log
/* { dg-do compile } */ /* { dg-options "-O3 -msse2" } */ /* { dg-require-effective-target sse2 } */ /* { dg-final { scan-assembler "punpcklbw" } } */ extern void abort(); #include <emmintrin.h> __m128i foo (char) __attribute__((noinline)); __m128i foo (char x) { return _mm_set1_epi8(x); } __m128i bar (char) __attribute__((noinline)); __m128i bar (char x) { return _mm_set_epi8 (x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x); } main() { int i, j; union u { __m128i v; char c[16]; }; union u x, y; for (i = -128; i <= 127; i++) { x.v = foo ((char)i); y.v = bar ((char)i); for (j=0; j<16; j++) if (x.c[j] != y.c[j]) abort(); } return 0; }