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

--- Comment #4 from Carlos Tripiana Montes <tripiana at gmail dot com> ---
I wasn't sure but that was my intuition. But I'm afraid I don't have enough
knowledge to propose a fix.

(In reply to Jakub Jelinek from comment #3)
> I'd say it is a bug in ix86_fp_cmp_code_to_pcmp_immediate that it handles
> only a small portion of the FP comparison codes, while VCMPP[SD]
> instructions should be able to handle everything needed.
> But, I'm also surprised where the values in that function come from.
> Looking at the D modifier expansion in i386.c that is used for AVX vcmp, I
> see that:
> code      %D3 emits     corresponding imm   
> ix86_fp_cmp_code_to_pcmp_immediate
> UNEQ      eq_us         0x18                 ICE
> EQ        eq            0                    8
> UNLT      nge           9                    ICE
> LT        lt            1                    0x19
> UNLE      ngt           0xa                  ICE
> LE        le            2                    0x1a
> UNORDERED unord         3                    ICE
> LTGT      neq_oq        0xc                  ICE
> NE        neq           4                    4
> GE        ge            0xd                  0x15
> UNGE      nlt           5                    ICE
> GT        gt            0xe                  0x16
> UNGT      nle           6                    ICE
> ORDERED   ord           7                    ICE
> So, there is agreement only on NE and nothing else.

Reply via email to