https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115683
Bug ID: 115683 Summary: SSE2 regressions after obselete of vcond{,u,eq}. Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: liuhongt at gcc dot gnu.org Target Milestone: --- Whole failure list. g++: g++.target/i386/pr100637-1b.C -std=gnu++14 scan-assembler-times pcmpeqb 2 g++: g++.target/i386/pr100637-1b.C -std=gnu++17 scan-assembler-times pcmpeqb 2 g++: g++.target/i386/pr100637-1b.C -std=gnu++20 scan-assembler-times pcmpeqb 2 g++: g++.target/i386/pr100637-1b.C -std=gnu++98 scan-assembler-times pcmpeqb 2 g++: g++.target/i386/pr100637-1w.C -std=gnu++14 scan-assembler-times pcmpeqw 2 g++: g++.target/i386/pr100637-1w.C -std=gnu++17 scan-assembler-times pcmpeqw 2 g++: g++.target/i386/pr100637-1w.C -std=gnu++20 scan-assembler-times pcmpeqw 2 g++: g++.target/i386/pr100637-1w.C -std=gnu++98 scan-assembler-times pcmpeqw 2 g++: g++.target/i386/pr103861-1.C -std=gnu++14 scan-assembler-times pcmpeqb 2 g++: g++.target/i386/pr103861-1.C -std=gnu++17 scan-assembler-times pcmpeqb 2 g++: g++.target/i386/pr103861-1.C -std=gnu++20 scan-assembler-times pcmpeqb 2 g++: g++.target/i386/pr103861-1.C -std=gnu++98 scan-assembler-times pcmpeqb 2 gcc: gcc.target/i386/pr88540.c scan-assembler minpd There're extra 1 pcmpeq instruction generated in below 3 testcase for comparison of GTU, x86 doesn't support native GTU comparison, but use psubusw + pcmpeq + pcmpeq, the second pcmpeq is used to negate the mask, and the negate can be eliminated in vcond{,u,eq} expander by just swapping if_true and if_else. g++: g++.target/i386/pr100637-1b.C g++.target/i386/pr100637-1w.C g++: g++.target/i386/pr103861-1.C This one maybe a little bit difficult, it's x86 specific floating point min/max{ps,pd} which is an exact match of a > b ? a : b, and not ieee-conformant. gcc: gcc.target/i386/pr88540.c scan-assembler minpd