diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/xorps-sse2.c')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/xorps-sse2.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/xorps-sse2.c b/gcc/testsuite/gcc.target/i386/xorps-sse2.c new file mode 100644 index 000000000..3c268b4cb --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/xorps-sse2.c @@ -0,0 +1,15 @@ +/* Test that we generate xorps when the result is used in FP math. */ +/* { dg-do compile } */ +/* { dg-options "-O -msse2 -mno-sse3" } */ +/* { dg-final { scan-assembler "xorps\[ \t\]" { xfail *-*-* } } } */ +/* { dg-final { scan-assembler-not "pxor" { xfail *-*-* } } } */ + +#define vector __attribute__ ((vector_size (16))) + +vector float i(vector float f, vector float h) +{ + vector int g = { 0x80000000, 0, 0x80000000, 0 }; + vector int f_int = (vector int) f; + return ((vector float) (f_int ^ g)) + h; +} + |