[Bug target/98612] _mm_comieq_sd has wrong semantics
crazylht at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Jan 11 06:45:00 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98612
--- Comment #3 from Hongtao.liu <crazylht at gmail dot com> ---
Also found some dead code in ix86_expand_sse_comi which is called by
if (fcode >= IX86_BUILTIN__BDESC_COMI_FIRST
&& fcode <= IX86_BUILTIN__BDESC_COMI_LAST)
where all builtins are defined with flags as 0.
2 files changed, 9 deletions(-)
gcc/config/i386/i386-builtins.h | 4 ----
gcc/config/i386/i386-expand.c | 5 -----
modified gcc/config/i386/i386-builtins.h
@@ -236,10 +236,6 @@ struct builtin_isa {
/* Bits for builtin_description.flag. */
-/* Set when we don't support the comparison natively, and should
- swap_comparison in order to support it. */
-#define BUILTIN_DESC_SWAP_OPERANDS 1
-
struct builtin_description
{
const HOST_WIDE_INT mask;
modified gcc/config/i386/i386-expand.c
@@ -8634,11 +8634,6 @@ ix86_expand_sse_comi (const struct builtin_description
*d, tree exp,
if (VECTOR_MODE_P (mode1))
op1 = safe_vector_operand (op1, mode1);
- /* Swap operands if we have a comparison that isn't available in
- hardware. */
- if (d->flag & BUILTIN_DESC_SWAP_OPERANDS)
- std::swap (op0, op1);
-
target = gen_reg_rtx (SImode);
emit_move_insn (target, const0_rtx);
target = gen_rtx_SUBREG (QImode, target, 0);
[back]
More information about the Gcc-bugs
mailing list