https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323

--- Comment #6 from rguenther at suse dot de <rguenther at suse dot de> ---
On Fri, 2 Aug 2019, ubizjak at gmail dot com wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323
> 
> --- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> ---
> (In reply to Richard Biener from comment #3)
> 
> > That means this is a target issue, LTGT isn't an unordered compare.
> 
> So, it should create COMISS then?
> 
> The patch is then simple:
> 
> --cut here--
> Index: config/i386/i386-expand.c
> ===================================================================
> --- config/i386/i386-expand.c   (revision 273981)
> +++ config/i386/i386-expand.c   (working copy)
> @@ -2290,12 +2290,12 @@
>      case GE:
>      case LT:
>      case LE:
> +    case LTGT:
>        return false;
> 
>      case EQ:
>      case NE:
> 
> -    case LTGT:
>      case UNORDERED:
>      case ORDERED:
>      case UNLT:
> --cut here--
> 
> (I just want to double-check, this stuff is a bit confusing to me).

That looks consistent with what the rest of the compiler does, yes.
ICC generates comiss as well (but two of them, never combining).
clang generates ucomiss even with -ftrapping-math -fno-finite-math-only
but that looks like a bug similar to this one.

Reply via email to