https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109955
Bug ID: 109955 Summary: Should be possible to remove vcond{,u,eq} expanders Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org Target Milestone: --- It should be possible to remove all vcond, vcondu and vcondeq expanders and have the functionality be implemented via the vec_cmp and vcond_mask expanders. But when removing them a bootstrap & regtest reveals === g++ tests === Running target unix FAIL: g++.target/i386/avx-pr54700-1.C scan-assembler-not vpcmpgt[bdq] FAIL: g++.target/i386/avx-pr54700-1.C scan-assembler-times vblendvpd 4 FAIL: g++.target/i386/avx-pr54700-1.C scan-assembler-times vblendvps 4 FAIL: g++.target/i386/avx-pr54700-1.C scan-assembler-times vpblendvb 2 FAIL: g++.target/i386/avx2-pr54700-1.C scan-assembler-not vpcmpgt[bdq] FAIL: g++.target/i386/avx2-pr54700-1.C scan-assembler-times vblendvpd 4 FAIL: g++.target/i386/avx2-pr54700-1.C scan-assembler-times vblendvps 4 FAIL: g++.target/i386/avx2-pr54700-1.C scan-assembler-times vpblendvb 2 FAIL: g++.target/i386/avx512fp16-vcondmn-minmax.C -std=gnu++14 scan-assembler-times vmaxph 3 FAIL: g++.target/i386/avx512fp16-vcondmn-minmax.C -std=gnu++14 scan-assembler-times vminph 3 FAIL: g++.target/i386/pr100738-1.C -std=gnu++14 scan-assembler-not vpcmpeqd[ \\\\t] FAIL: g++.target/i386/pr100738-1.C -std=gnu++14 scan-assembler-not vpxor[ \\\\t] FAIL: g++.target/i386/pr100738-1.C -std=gnu++14 scan-assembler-times vblendvps[ \\\\t] 2 FAIL: g++.target/i386/sse4_1-pr54700-1.C scan-assembler-not pcmpgt[bdq] FAIL: g++.target/i386/sse4_1-pr54700-1.C scan-assembler-times blendvpd 4 FAIL: g++.target/i386/sse4_1-pr54700-1.C scan-assembler-times blendvps 4 FAIL: g++.target/i386/sse4_1-pr54700-1.C scan-assembler-times pblendvb 2 === gcc tests === Running target unix FAIL: gcc.dg/vect/pr109011-3.c -flto -ffat-lto-objects scan-tree-dump-times optimized " = .POPCOUNT \\\\(vect" 3 FAIL: gcc.dg/vect/pr109011-3.c scan-tree-dump-times optimized " = .POPCOUNT \\\\(vect" 3 FAIL: gcc.dg/vect/pr109011-5.c -flto -ffat-lto-objects scan-tree-dump-times optimized " = .POPCOUNT \\\\(vect" 3 FAIL: gcc.dg/vect/pr109011-5.c scan-tree-dump-times optimized " = .POPCOUNT \\\\(vect" 3 FAIL: gcc.target/i386/avx2-pr99908.c scan-assembler-not \\tvpcmpeq FAIL: gcc.target/i386/avx512bw-pr96891-1.c scan-assembler-not %k[0-7] FAIL: gcc.target/i386/avx512vl-pr88547-1.c scan-assembler-not %k[0-9] FAIL: gcc.target/i386/avx512vl-pr88547-1.c scan-assembler-times vpminsb[\\t ] 2 FAIL: gcc.target/i386/avx512vl-pr88547-1.c scan-assembler-times vpminsd[\\t ] 2 FAIL: gcc.target/i386/avx512vl-pr88547-1.c scan-assembler-times vpminsq[\\t ] 2 FAIL: gcc.target/i386/avx512vl-pr88547-1.c scan-assembler-times vpminsw[\\t ] 2 FAIL: gcc.target/i386/avx512vl-pr88547-1.c scan-assembler-times vpminub[\\t ] 2 FAIL: gcc.target/i386/avx512vl-pr88547-1.c scan-assembler-times vpminud[\\t ] 2 FAIL: gcc.target/i386/avx512vl-pr88547-1.c scan-assembler-times vpminuq[\\t ] 2 FAIL: gcc.target/i386/avx512vl-pr88547-1.c scan-assembler-times vpminuw[\\t ] 2 FAIL: gcc.target/i386/pr109011-b1.c scan-assembler-times vpopcntb[ \\t]+ 4 FAIL: gcc.target/i386/pr109011-w1.c scan-assembler-times vpopcntw[ \\t]+ 4 FAIL: gcc.target/i386/sse4_1-pr99908.c scan-assembler-not \\tpcmpeq