aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.ibm.com>2018-11-09 16:35:23 +0000
committerWilliam Schmidt <wschmidt@gcc.gnu.org>2018-11-09 16:35:23 +0000
commit32999d87d6f422fb6cacea66d2e4ed645e84ebe7 (patch)
tree2363d754d95090e4bf6bd9a706a7ee4bceb0836f
parent71caffb725450df820f706dc8f7a05aa8a22061f (diff)
downloadgcc-32999d87d6f422fb6cacea66d2e4ed645e84ebe7.zip
gcc-32999d87d6f422fb6cacea66d2e4ed645e84ebe7.tar.gz
gcc-32999d87d6f422fb6cacea66d2e4ed645e84ebe7.tar.bz2
xmmintrin.h (_mm_cvtss_si32): Fix incorrect constraints by introducing a new temporary.
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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/xmmintrin.h24
2 files changed, 21 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3c70eb6..a130c97 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/rs6000/xmmintrin.h b/gcc/config/rs6000/xmmintrin.h
index d8e3291..367f7a9 100644
--- a/gcc/config/rs6000/xmmintrin.h
+++ b/gcc/config/rs6000/xmmintrin.h
@@ -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