diff options
author | Bill Schmidt <wschmidt@linux.ibm.com> | 2018-11-09 16:35:23 +0000 |
---|---|---|
committer | William Schmidt <wschmidt@gcc.gnu.org> | 2018-11-09 16:35:23 +0000 |
commit | 32999d87d6f422fb6cacea66d2e4ed645e84ebe7 (patch) | |
tree | 2363d754d95090e4bf6bd9a706a7ee4bceb0836f | |
parent | 71caffb725450df820f706dc8f7a05aa8a22061f (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/rs6000/xmmintrin.h | 24 |
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 |