https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63594
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Note that this bug shows up in quite a lot of regressions on the trunk, both x86_64 and i686: +FAIL: gcc.target/i386/avx-1.c (internal compiler error) +FAIL: gcc.target/i386/avx-1.c (test for excess errors) +FAIL: gcc.target/i386/avx-2.c (internal compiler error) +FAIL: gcc.target/i386/avx-2.c (test for excess errors) +FAIL: gcc.target/i386/avx512f-vec-init.c (internal compiler error) +FAIL: gcc.target/i386/avx512f-vec-init.c (test for excess errors) +UNRESOLVED: gcc.target/i386/avx512f-vec-init.c scan-assembler-times vbroadcastsd 1 +UNRESOLVED: gcc.target/i386/avx512f-vec-init.c scan-assembler-times vbroadcastss 1 +UNRESOLVED: gcc.target/i386/avx512f-vec-init.c scan-assembler-times vmovdqa64[ \\\\t]+%zmm 2 +UNRESOLVED: gcc.target/i386/avx512f-vec-init.c scan-assembler-times vpbroadcastb 2 +UNRESOLVED: gcc.target/i386/avx512f-vec-init.c scan-assembler-times vpbroadcastd 1 +UNRESOLVED: gcc.target/i386/avx512f-vec-init.c scan-assembler-times vpbroadcastq 1 +UNRESOLVED: gcc.target/i386/avx512f-vec-init.c scan-assembler-times vpbroadcastw 2 +FAIL: gcc.target/i386/sse-14.c (internal compiler error) +FAIL: gcc.target/i386/sse-14.c (test for excess errors) +FAIL: gcc.target/i386/sse-22.c (internal compiler error) +FAIL: gcc.target/i386/sse-22.c (test for excess errors) +FAIL: gcc.target/i386/sse-22a.c (internal compiler error) +FAIL: gcc.target/i386/sse-22a.c (test for excess errors) +FAIL: gcc.target/i386/sse-23.c (internal compiler error) +FAIL: gcc.target/i386/sse-23.c (test for excess errors) +FAIL: gcc.target/i386/sse-24.c (internal compiler error) +FAIL: gcc.target/i386/sse-24.c (test for excess errors) are all because of this, so IMHO this is quite urgent thing to solve. Note, supposedly in the WIP2 patch supposedly the vec_dup<mode> and the new define_insns should be moved after the avx512 patterns, so that those trigger earlier, and as I said, IMHO they really need to be merged so that broadcasts from gprs are in the same patterns as broadcasts from memory or vector regs, just different alternatives, but supposedly that can be done incrementally. I'm also not sure about the v vs. x constraints on the AVX2 insn, supposedly v is not an option if the mode iterator includes V*QI and V*HI modes, because then AVX512F doesn't have instructions for that, right?