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.
