https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115418
Hongtao Liu <liuhongt at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |liuhongt at gcc dot gnu.org --- Comment #3 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #2) > Note the issue is ix86_expand_sse_fp_minmax only handles LT/UNGE but it > should handle GT/UNLT with both parts swapped (comparison and true/false). > GT/UNLT is "canonicalized" to GT/UNGT in ix86_prepare_sse_fp_compare_args 4410 case GE: 4411 case GT: 4412 case UNLE: 4413 case UNLT: 4414 /* These are not supported directly before AVX, and furthermore 4415 ix86_expand_sse_fp_minmax only optimizes LT/UNGE. Swap the 4416 comparison operands to transform into something that is 4417 supported. */ 4418 std::swap (*pop0, *pop1); 4419 code = swap_condition (code);