diff options
-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 |