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