Skip to content
Snippets Groups Projects
Commit 19b24f4a authored by Hongyu Wang's avatar Hongyu Wang
Browse files

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.
parent 8564d094
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment