This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libgcc/71559] ICE in ix86_fp_cmp_code_to_pcmp_immediate, at config/i386/i386.c:23042 (KNL/AVX512)


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-06-17
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |uros at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]