I see the following ICE: $ gcc /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/sse-recip-vec.c -Ofast -mavx512vbmi -c /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/sse-check.h: In function ‘do_test’: /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/sse-check.h:13:1: error: unrecognizable insn: 13 | } | ^ (insn 21 20 22 2 (set (reg:V8SF 138) (fma:V8SF (reg:V8SF 136) (reg:V8SF 135) (reg:V8SF 142))) "/home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/sse-recip-vec.c":33:14 -1 (nil)) during RTL pass: vregs /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/sse-check.h:13:1: internal compiler error: in extract_insn, at recog.c:2294 0x7ffff7aa1cc9 __libc_start_main ../csu/libc-start.c:308 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.
This shows in multiple testsuite fails on x86-64 as well. FAIL: gcc.target/i386/avx512er-vrsqrt28ps-3.c (internal compiler error) FAIL: gcc.target/i386/avx512er-vrsqrt28ps-3.c (test for excess errors) UNRESOLVED: gcc.target/i386/avx512er-vrsqrt28ps-3.c compilation failed to produce executable FAIL: gcc.target/i386/avx512er-vrsqrt28ps-4.c (internal compiler error) FAIL: gcc.target/i386/avx512er-vrsqrt28ps-4.c (test for excess errors) UNRESOLVED: gcc.target/i386/avx512er-vrsqrt28ps-4.c scan-assembler-not vrcp28ps[^\\n\\r]*zmm[0-9]+(?:\\n|[ \\\\t]+#) UNRESOLVED: gcc.target/i386/avx512er-vrsqrt28ps-4.c scan-assembler-times vrsqrt28ps[^\\n\\r]*zmm[0-9]+(?:\\n|[ \\\\t]+#) 1 FAIL: gcc.target/i386/avx512er-vrsqrt28ps-5.c (internal compiler error) FAIL: gcc.target/i386/avx512er-vrsqrt28ps-5.c (test for excess errors) UNRESOLVED: gcc.target/i386/avx512er-vrsqrt28ps-5.c compilation failed to produce executable FAIL: gcc.target/i386/avx512er-vrsqrt28ps-6.c (internal compiler error) FAIL: gcc.target/i386/avx512er-vrsqrt28ps-6.c (test for excess errors) UNRESOLVED: gcc.target/i386/avx512er-vrsqrt28ps-6.c scan-assembler-times vrcp28ps[^\\n\\r]*zmm[0-9]+(?:\\n|[ \\\\t]+#) 1 UNRESOLVED: gcc.target/i386/avx512er-vrsqrt28ps-6.c scan-assembler-times vrsqrt28ps[^\\n\\r]*zmm[0-9]+(?:\\n|[ \\\\t]+#) 1
A patch was posted at https://gcc.gnu.org/pipermail/gcc-patches/2020-July/549769.html
The master branch has been updated by H.J. Lu <hjl@gcc.gnu.org>: https://gcc.gnu.org/g:a6645a826f58b68f68dff30e6e6e78542099d0cc commit r11-2013-ga6645a826f58b68f68dff30e6e6e78542099d0cc Author: H.J. Lu <hjl.tools@gmail.com> Date: Thu Jul 9 14:56:48 2020 -0700 x86: Check TARGET_AVX512VL when enabling FMA Check TARGET_AVX512VL when enabling FMA to avoid gcc.target/i386/avx512er-vrsqrt28ps-3.c:25:1: error: unrecognizable insn: (insn 29 28 30 6 (set (reg:V8SF 108) (fma:V8SF (reg:V8SF 106) (reg:V8SF 105) (reg:V8SF 110))) when TARGET_AVX512VL isn't enabled. PR target/96144 * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Check TARGET_AVX512VL when enabling FMA.
Fixed for GCC 11.