diff options
author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-11-10 23:00:01 +0000 |
---|---|---|
committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-11-10 23:00:01 +0000 |
commit | 850c7736799c4e5d80c45d4b895dc6051198178e (patch) | |
tree | 5a99f2f325a8058e017081f69c54ae9ad2063d6d /gcc/config | |
parent | 6bd9d862e29cd8444002527aba7daea833ab3e61 (diff) | |
download | ppe42-gcc-850c7736799c4e5d80c45d4b895dc6051198178e.tar.gz ppe42-gcc-850c7736799c4e5d80c45d4b895dc6051198178e.zip |
PR middle-end/46419
* config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
(_mm_cvtpu16_ps): Ditto.
testsuite/ChangeLog:
PR target/46419
* gcc-target/i386/pr46419.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166569 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/xmmintrin.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/config/i386/xmmintrin.h b/gcc/config/i386/xmmintrin.h index 544577ecaf0..8bec3744035 100644 --- a/gcc/config/i386/xmmintrin.h +++ b/gcc/config/i386/xmmintrin.h @@ -626,13 +626,13 @@ _mm_cvtpi16_ps (__m64 __A) __sign = __builtin_ia32_pcmpgtw ((__v4hi)0LL, (__v4hi)__A); /* Convert the four words to doublewords. */ - __hisi = (__v2si) __builtin_ia32_punpckhwd ((__v4hi)__A, __sign); __losi = (__v2si) __builtin_ia32_punpcklwd ((__v4hi)__A, __sign); + __hisi = (__v2si) __builtin_ia32_punpckhwd ((__v4hi)__A, __sign); /* Convert the doublewords to floating point two at a time. */ __zero = (__v4sf) _mm_setzero_ps (); - __ra = __builtin_ia32_cvtpi2ps (__zero, __hisi); - __rb = __builtin_ia32_cvtpi2ps (__ra, __losi); + __ra = __builtin_ia32_cvtpi2ps (__zero, __losi); + __rb = __builtin_ia32_cvtpi2ps (__ra, __hisi); return (__m128) __builtin_ia32_movlhps (__ra, __rb); } @@ -645,13 +645,13 @@ _mm_cvtpu16_ps (__m64 __A) __v4sf __zero, __ra, __rb; /* Convert the four words to doublewords. */ - __hisi = (__v2si) __builtin_ia32_punpckhwd ((__v4hi)__A, (__v4hi)0LL); __losi = (__v2si) __builtin_ia32_punpcklwd ((__v4hi)__A, (__v4hi)0LL); + __hisi = (__v2si) __builtin_ia32_punpckhwd ((__v4hi)__A, (__v4hi)0LL); /* Convert the doublewords to floating point two at a time. */ __zero = (__v4sf) _mm_setzero_ps (); - __ra = __builtin_ia32_cvtpi2ps (__zero, __hisi); - __rb = __builtin_ia32_cvtpi2ps (__ra, __losi); + __ra = __builtin_ia32_cvtpi2ps (__zero, __losi); + __rb = __builtin_ia32_cvtpi2ps (__ra, __hisi); return (__m128) __builtin_ia32_movlhps (__ra, __rb); } |