diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/vect/gimplefe-41.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/gimplefe-41.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/gimplefe-41.c b/gcc/testsuite/gcc.dg/vect/gimplefe-41.c new file mode 100644 index 00000000000..e52a3a559a9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/gimplefe-41.c @@ -0,0 +1,40 @@ +/* { dg-do compile { target { vect_double && vect_long_long } } } */ +/* { dg-options "-fgimple -Wno-psabi -w" } */ +/* { dg-additional-options "-msse2" { target x86_64-*-* i?86-*-* } } */ + +typedef double __v2df __attribute__ ((__vector_size__ (16))); +typedef unsigned long long __v2di __attribute__ ((__vector_size__ (16))); + +__v2df __GIMPLE (ssa) +_mm_add_sd (__v2df x, __v2df y) +{ + __v2df z; + double _1; + double _2; + double _3; + __v2df _7; + + __BB(2): + _1 = __BIT_FIELD_REF <double> (x_4(D), 64u, 0u); + _2 = __BIT_FIELD_REF <double> (y_5(D), 64u, 0u); + _3 = _1 + _2; + _7 = _Literal (__v2df) {_3, _3}; + z_6 = __VEC_PERM (x_4(D), _7, _Literal (__v2di) { 2ul, 1ul }); + return z_6; +} + +__v2df __GIMPLE (ssa) +_mm_add_sd2 (__v2df x, __v2df y) +{ + __v2df z; + double _1; + double _2; + double _3; + + __BB(2): + _1 = __BIT_FIELD_REF <double> (x_4(D), 64u, 0u); + _2 = __BIT_FIELD_REF <double> (y_5(D), 64u, 0u); + _3 = _1 + _2; + z_6 = __BIT_INSERT (x_4(D), _3, 0); + return z_6; +} |