aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-split.cc
diff options
context:
space:
mode:
authorHongyu Wang <hongyu.wang@intel.com>2024-11-12 13:04:46 +0800
committerHongyu Wang <hongyu.wang@intel.com>2024-11-14 11:30:42 +0800
commit19b24f4aae6c59d70cc882623b1e9b279b3872f3 (patch)
tree62d094b8151f7cbc0b21d0352a21d2562e60e1f1 /gcc/tree-ssa-loop-split.cc
parent8564d0948c72df0a66d7eb47e15c6ab43e9b25ce (diff)
downloadgcc-19b24f4aae6c59d70cc882623b1e9b279b3872f3.zip
gcc-19b24f4aae6c59d70cc882623b1e9b279b3872f3.tar.gz
gcc-19b24f4aae6c59d70cc882623b1e9b279b3872f3.tar.bz2
i386: Fix cstorebf4 fp comparison operand [PR117495]
For cstorebf4 it uses comparison_operator for BFmode compare, which is incorrect when directly uses ix86_expand_setcc as it does not canonicalize the input comparison to correct the compare code by swapping operands. The original code without AVX10.2 calls emit_store_flag_force, who actually calls to emit_store_flags_1 and recurisive calls to this expander again with swapped operand and flag. Therefore, we can avoid do the redundant recurisive call by adjusting the comparison_operator to ix86_fp_comparison_operator, and calls ix86_expand_setcc directly. gcc/ChangeLog: PR target/117495 * config/i386/i386.md (cstorebf4): Use ix86_fp_comparison_operator and calls ix86_expand_setcc directly. gcc/testsuite/ChangeLog: PR target/117495 * gcc.target/i386/pr117495.c: New test.
Diffstat (limited to 'gcc/tree-ssa-loop-split.cc')
0 files changed, 0 insertions, 0 deletions