xmmintrin.h (_mm_cvtss_si32): Fix incorrect constraints by introducing a new temporary.
authorBill Schmidt <wschmidt@linux.ibm.com>
Fri, 9 Nov 2018 16:35:23 +0000 (16:35 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Fri, 9 Nov 2018 16:35:23 +0000 (16:35 +0000)
2018-11-09  Bill Schmidt  <wschmidt@linux.ibm.com>
    Jinsong Ji  <jji@us.ibm.com>

* config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix incorrect
constraints by introducing a new temporary.
(_mm_cvtss_si64): Likewise.

Co-Authored-By: Jinsong Ji <jji@us.ibm.com>
From-SVN: r265975

gcc/ChangeLog
gcc/config/rs6000/xmmintrin.h

index 3c70eb6d62073754779360c43e162bcab99558e8..a130c97fe4627854afa29411f3cbce96e8890cf1 100644 (file)
@@ -1,3 +1,10 @@
+2018-11-09  Bill Schmidt  <wschmidt@linux.ibm.com>
+           Jinsong Ji  <jji@us.ibm.com>
+
+       * config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix incorrect
+       constraints by introducing a new temporary.
+       (_mm_cvtss_si64): Likewise.
+
 2018-11-09  Martin Liska  <mliska@suse.cz>
 
        * common.opt: Add -fipa-stack-alignment flag.
index d8e3291b2df2ea1472f805192ca4daf9a614eedb..367f7a9cd8d1c6015eb5706c8a7ae6fb9c1ff1f7 100644 (file)
@@ -908,13 +908,15 @@ _mm_cvtss_si32 (__m128 __A)
   __m64 res = 0;
 #ifdef _ARCH_PWR8
   __m128 vtmp;
+  double dtmp;
   __asm__(
-      "xxsldwi %x1,%x2,%x2,3;\n"
-      "xscvspdp %x1,%x1;\n"
-      "fctiw  %1,%1;\n"
-      "mfvsrd  %0,%x1;\n"
+      "xxsldwi %x1,%x3,%x3,3;\n"
+      "xscvspdp %x2,%x1;\n"
+      "fctiw  %2,%2;\n"
+      "mfvsrd  %0,%x2;\n"
       : "=r" (res),
-       "=&wi" (vtmp)
+       "=&wa" (vtmp),
+        "=f" (dtmp)
       : "wa" (__A)
       : );
 #else
@@ -939,13 +941,15 @@ _mm_cvtss_si64 (__m128 __A)
   __m64 res = 0;
 #ifdef _ARCH_PWR8
   __m128 vtmp;
+  double dtmp;
   __asm__(
-      "xxsldwi %x1,%x2,%x2,3;\n"
-      "xscvspdp %x1,%x1;\n"
-      "fctid  %1,%1;\n"
-      "mfvsrd  %0,%x1;\n"
+      "xxsldwi %x1,%x3,%x3,3;\n"
+      "xscvspdp %x2,%x1;\n"
+      "fctid  %2,%2;\n"
+      "mfvsrd  %0,%x2;\n"
       : "=r" (res),
-       "=&wi" (vtmp)
+        "=&wa" (vtmp),
+        "=f" (dtmp)
       : "wa" (__A)
       : );
 #else