diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/pr39315-check.c')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr39315-check.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/pr39315-check.c b/gcc/testsuite/gcc.target/i386/pr39315-check.c new file mode 100644 index 000000000..cb09d3f2b --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr39315-check.c @@ -0,0 +1,25 @@ +/* { dg-do compile } */ + +typedef float __m128 __attribute__ ((__vector_size__ (16))); +__extension__ typedef __PTRDIFF_TYPE__ ptrdiff_t; + +extern void foo (__m128 *); +extern void abort (void); + +__m128 y = { 0.0, 1.0, 2.0, 3.0 }; + +void +bar (__m128 *x, int align) +{ + if ((((ptrdiff_t) x) & (align - 1)) != 0) + abort (); + if (__builtin_memcmp (x, &y, sizeof (y)) != 0) + abort (); +} + +int +main () +{ + foo (&y); + return 0; +} |