mmintrin.h (_mm_sub_pi32): Fix typo.
authorBill Schmidt <wschmidt@linux.ibm.com>
Fri, 22 Mar 2019 13:49:18 +0000 (13:49 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Fri, 22 Mar 2019 13:49:18 +0000 (13:49 +0000)
[gcc]

2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>

* config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.

[gcc/testsuite]

2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>

* gcc.target/powerpc/mmx-psubd-2.c: Test _m_psubd.

From-SVN: r269871

gcc/ChangeLog
gcc/config/rs6000/mmintrin.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c

index 9fa4bb9dfb7c1b5ccb124599a9ba66acd0ac0df8..d85a8fcfba9b688dabf40083102e4dc9f72696ce 100644 (file)
@@ -1,3 +1,7 @@
+2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>
+
+       * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
+
 2019-03-22  Jakub Jelinek  <jakub@redhat.com>
 
        * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
index e2680258b20859e20b9fbec056b287a6c22cc0e1..402b20ecdf84e9227c018e39124f28e229939e4c 100644 (file)
@@ -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__))
index ac41542e2265e5c73d8b2c9cc82dcbfbcf8763dc..6f17f242b4f2b750ab021e827d416fd71844efed 100644 (file)
@@ -1,3 +1,7 @@
+2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>
+
+       * gcc.target/powerpc/mmx-psubd-2.c: Test _m_psubd.
+
 2019-03-22  Hongtao Liu  <hongtao.liu@intel.com>
 
        PR target/89784
index aadaaa243555a68df4db4ce2a0c4749cf419445d..178590177f088a962b7e6624b62618ad4c3e6896 100644 (file)
@@ -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 ();
 }