https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93670
Bug ID: 93670 Summary: ICE for _mm256_extractf32x4_ps (unrecognized insn) Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: crazylht at gmail dot com Target Milestone: --- Target: i386, x86-64 cat test.c --- #include<immintrin.h> #include<assert.h> __m128i i__mm256_extractf32x4_ps_VEXTRACTF32X4(__m256i arg_0, int arg_1) { __m128i result; switch (arg_1) { case 0x00: // arg_1 result = _mm256_extracti32x4_epi32(arg_0, 0x00); break; case 0x01: // arg_1 result = _mm256_extracti32x4_epi32(arg_0, 0x01); break; default: // arg_1 assert(0); break; } return result; } --- gcc10_20200110 -O2 -S test.c -mavx512f -mavx512vl error: test.c: In function ‘i__mm256_extractf32x4_ps_VEXTRACTF32X4’: test.c:17:1: error: unrecognizable insn: 17 | } | ^ (insn 20 19 21 6 (set (reg:V4SI 89) (vec_merge:V4SI (vec_select:V4SI (reg:V8SI 90) (parallel [ (const_int 0 [0]) (const_int 1 [0x1]) (const_int 2 [0x2]) (const_int 3 [0x3]) ])) (reg:V4SI 91) (reg:QI 92))) "/export/users2/liuhongt/install/gcc10_trunk/lib/gcc/x86_64-pc-linux-gnu/10.0.0/include/avx512vlintrin.h":10055:20 -1 (nil)) during RTL pass: vregs test.c:17:1: internal compiler error: in extract_insn, at recog.c:2294 0x1185247 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../../gcc/gnu-toolchain/gcc/gcc/rtl-error.c:108 0x1185288 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) ../../../gcc/gnu-toolchain/gcc/gcc/rtl-error.c:116 0x111d0d4 extract_insn(rtx_insn*) ../../../gcc/gnu-toolchain/gcc/gcc/recog.c:2294 0xd0eece instantiate_virtual_regs_in_insn ../../../gcc/gnu-toolchain/gcc/gcc/function.c:1607 0xd10517 instantiate_virtual_regs ../../../gcc/gnu-toolchain/gcc/gcc/function.c:1977 0xd105e2 execute ../../../gcc/gnu-toolchain/gcc/gcc/function.c:2026 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. affected intrinsics _mm256_extractf32x4_ps _mm256_mask_extractf32x4_ps _mm256_maskz_extractf32x4_ps _mm256_extracti32x4_epi32 _mm256_mask_extracti32x4_epi32 _mm256_maskz_extracti32x4_epi32