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);

Reply via email to