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.