From b6c5f9f3dd489efa345175c8ac1352fa2849d32c Mon Sep 17 00:00:00 2001 From: Bill Schmidt Date: Fri, 22 Mar 2019 13:49:18 +0000 Subject: [PATCH] mmintrin.h (_mm_sub_pi32): Fix typo. [gcc] 2019-03-22 Bill Schmidt * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. [gcc/testsuite] 2019-03-22 Bill Schmidt * gcc.target/powerpc/mmx-psubd-2.c: Test _m_psubd. From-SVN: r269871 --- gcc/ChangeLog | 4 ++++ gcc/config/rs6000/mmintrin.h | 2 +- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c | 14 +++++++++++--- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9fa4bb9dfb7c..d85a8fcfba9b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2019-03-22 Bill Schmidt + + * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. + 2019-03-22 Jakub Jelinek * config/i386/sse.md (_fmadd__mask3, diff --git a/gcc/config/rs6000/mmintrin.h b/gcc/config/rs6000/mmintrin.h index e2680258b208..402b20ecdf84 100644 --- a/gcc/config/rs6000/mmintrin.h +++ b/gcc/config/rs6000/mmintrin.h @@ -597,7 +597,7 @@ _mm_sub_pi32 (__m64 __m1, __m64 __m2) extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _m_psubd (__m64 __m1, __m64 __m2) { - return _mm_add_pi32 (__m1, __m2); + return _mm_sub_pi32 (__m1, __m2); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ac41542e2265..6f17f242b4f2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2019-03-22 Bill Schmidt + + * gcc.target/powerpc/mmx-psubd-2.c: Test _m_psubd. + 2019-03-22 Hongtao Liu PR target/89784 diff --git a/gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c b/gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c index aadaaa243555..178590177f08 100644 --- a/gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c +++ b/gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c @@ -22,20 +22,28 @@ test (__m64 s1, __m64 s2) return _mm_sub_pi32 (s1, s2); } +static __m64 +__attribute__((noinline, unused)) +test_alias (__m64 s1, __m64 s2) +{ + return _m_psubd (s1, s2); +} + static void TEST (void) { __m64_union u, s1, s2; - __m64_union e; + __m64_union e, v; int i; s1.as_m64 = _mm_setr_pi32 (30, 90); s2.as_m64 = _mm_setr_pi32 (76, -100); u.as_m64 = test (s1.as_m64, s2.as_m64); - + v.as_m64 = test_alias (s1.as_m64, s2.as_m64); + for (i = 0; i < 2; i++) e.as_int[i] = s1.as_int[i] - s2.as_int[i]; - if (u.as_m64 != e.as_m64) + if (u.as_m64 != e.as_m64 || u.as_m64 != v.as_m64) abort (); } -- 2.47.2