From: Bill Schmidt Date: Fri, 22 Mar 2019 13:49:18 +0000 (+0000) Subject: mmintrin.h (_mm_sub_pi32): Fix typo. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b6c5f9f3dd489efa345175c8ac1352fa2849d32c;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9fa4bb9dfb7..d85a8fcfba9 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 e2680258b20..402b20ecdf8 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 ac41542e226..6f17f242b4f 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 aadaaa24355..178590177f0 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 (); }