re PR target/7396 (ix86: cmpgt_ss, cmpge_ss, cmpngt_ss, and cmpnge_ss SSE intriniscs are broken)
PR target/7396 * i386.c (builtin_description):Drop cmpg[te]s[sd]. * xmmintrin.h (__mm_cmpg[te]_s[sd]): Rewrite using swapped alternative. From-SVN: r58210
This commit is contained in:
parent
95baf99634
commit
de333e72a2
|
@ -1,3 +1,10 @@
|
|||
Wed Oct 16 19:43:38 CEST 2002 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
PR target/7396
|
||||
* i386.c (builtin_description):Drop cmpg[te]s[sd].
|
||||
* xmmintrin.h (__mm_cmpg[te]_s[sd]): Rewrite using
|
||||
swapped alternative.
|
||||
|
||||
2002-10-16 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* fold-const.c (fold): Fix a typo.
|
||||
|
|
|
@ -10960,14 +10960,10 @@ static const struct builtin_description bdesc_2arg[] =
|
|||
{ MASK_SSE, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpeqss", IX86_BUILTIN_CMPEQSS, EQ, 0 },
|
||||
{ MASK_SSE, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpltss", IX86_BUILTIN_CMPLTSS, LT, 0 },
|
||||
{ MASK_SSE, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpless", IX86_BUILTIN_CMPLESS, LE, 0 },
|
||||
{ MASK_SSE, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpgtss", IX86_BUILTIN_CMPGTSS, LT, 1 },
|
||||
{ MASK_SSE, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpgess", IX86_BUILTIN_CMPGESS, LE, 1 },
|
||||
{ MASK_SSE, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpunordss", IX86_BUILTIN_CMPUNORDSS, UNORDERED, 0 },
|
||||
{ MASK_SSE, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpneqss", IX86_BUILTIN_CMPNEQSS, EQ, 0 },
|
||||
{ MASK_SSE, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpnltss", IX86_BUILTIN_CMPNLTSS, LT, 0 },
|
||||
{ MASK_SSE, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpnless", IX86_BUILTIN_CMPNLESS, LE, 0 },
|
||||
{ MASK_SSE, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpngtss", IX86_BUILTIN_CMPNGTSS, LT, 1 },
|
||||
{ MASK_SSE, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpngess", IX86_BUILTIN_CMPNGESS, LE, 1 },
|
||||
{ MASK_SSE, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpordss", IX86_BUILTIN_CMPORDSS, UNORDERED, 0 },
|
||||
|
||||
{ MASK_SSE, CODE_FOR_sminv4sf3, "__builtin_ia32_minps", IX86_BUILTIN_MINPS, 0, 0 },
|
||||
|
|
|
@ -2060,13 +2060,9 @@ enum ix86_builtins
|
|||
IX86_BUILTIN_CMPEQSS,
|
||||
IX86_BUILTIN_CMPLTSS,
|
||||
IX86_BUILTIN_CMPLESS,
|
||||
IX86_BUILTIN_CMPGTSS,
|
||||
IX86_BUILTIN_CMPGESS,
|
||||
IX86_BUILTIN_CMPNEQSS,
|
||||
IX86_BUILTIN_CMPNLTSS,
|
||||
IX86_BUILTIN_CMPNLESS,
|
||||
IX86_BUILTIN_CMPNGTSS,
|
||||
IX86_BUILTIN_CMPNGESS,
|
||||
IX86_BUILTIN_CMPORDSS,
|
||||
IX86_BUILTIN_CMPUNORDSS,
|
||||
IX86_BUILTIN_CMPNESS,
|
||||
|
|
|
@ -245,13 +245,21 @@ _mm_cmple_ss (__m128 __A, __m128 __B)
|
|||
static __inline __m128
|
||||
_mm_cmpgt_ss (__m128 __A, __m128 __B)
|
||||
{
|
||||
return (__m128) __builtin_ia32_cmpgtss ((__v4sf)__A, (__v4sf)__B);
|
||||
return (__m128) __builtin_ia32_movss ((__v4sf) __A,
|
||||
(__v4sf)
|
||||
__builtin_ia32_cmpltss ((__v4sf) __B,
|
||||
(__v4sf)
|
||||
__A));
|
||||
}
|
||||
|
||||
static __inline __m128
|
||||
_mm_cmpge_ss (__m128 __A, __m128 __B)
|
||||
{
|
||||
return (__m128) __builtin_ia32_cmpgess ((__v4sf)__A, (__v4sf)__B);
|
||||
return (__m128) __builtin_ia32_movss ((__v4sf) __A,
|
||||
(__v4sf)
|
||||
__builtin_ia32_cmpless ((__v4sf) __B,
|
||||
(__v4sf)
|
||||
__A));
|
||||
}
|
||||
|
||||
static __inline __m128
|
||||
|
@ -275,13 +283,21 @@ _mm_cmpnle_ss (__m128 __A, __m128 __B)
|
|||
static __inline __m128
|
||||
_mm_cmpngt_ss (__m128 __A, __m128 __B)
|
||||
{
|
||||
return (__m128) __builtin_ia32_cmpngtss ((__v4sf)__A, (__v4sf)__B);
|
||||
return (__m128) __builtin_ia32_movss ((__v4sf) __A,
|
||||
(__v4sf)
|
||||
__builtin_ia32_cmpnltss ((__v4sf) __B,
|
||||
(__v4sf)
|
||||
__A));
|
||||
}
|
||||
|
||||
static __inline __m128
|
||||
_mm_cmpnge_ss (__m128 __A, __m128 __B)
|
||||
{
|
||||
return (__m128) __builtin_ia32_cmpngess ((__v4sf)__A, (__v4sf)__B);
|
||||
return (__m128) __builtin_ia32_movss ((__v4sf) __A,
|
||||
(__v4sf)
|
||||
__builtin_ia32_cmpnless ((__v4sf) __B,
|
||||
(__v4sf)
|
||||
__A));
|
||||
}
|
||||
|
||||
static __inline __m128
|
||||
|
|
Loading…
Reference in New Issue