https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70858
Bug ID: 70858
Summary: __builtin_ia32_bextr_u64 ICE with '-m32
-march=core-avx2'
Product: gcc
Version: 6.1.0
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: steven at uplinklabs dot net
Target Milestone: ---
$ gcc -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/6.1.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /build/gcc-multilib/src/gcc-6.1.0/configure
--host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu
--target=x86_64-unknown-linux-gnu --prefix=/usr --libdir=/usr/lib
--libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=https://www.uplinklabs.net/
--enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --disable-libssp
--disable-libstdcxx-pch --disable-libunwind-exceptions --disable-werror
--enable-checking=release --enable-clocale=gnu --enable-__cxa_atexit
--enable-gnu-indirect-function --enable-gnu-unique-object
--enable-install-libiberty --enable-libmpx --enable-linker-build-id
--enable-lto --enable-multilib --enable-plugin --enable-shared
--enable-threads=posix --with-isl --with-linker-hash-style=gnu
--with-multilib-list=m32,m64,mx32 --with-system-zlib
Thread model: posix
gcc version 6.1.0 (GCC)
Reduced testcase via creduce:
$ cat test.i
int a, b, c;
int d() { c = __builtin_ia32_bextr_u64(a, b); }
$ gcc -m32 -march=core-avx2 -c test.i
test.i: In function ādā:
test.i:2:1: error: unrecognizable insn:
int d() { c = __builtin_ia32_bextr_u64(a, b); }
^~~
(insn 9 8 10 2 (parallel [
(set (reg:DI 91 [ _6 ])
(unspec:DI [
(reg:DI 90 [ _5 ])
(reg:DI 88 [ _3 ])
] UNSPEC_BEXTR))
(clobber (reg:CC 17 flags))
]) test.i:2 -1
(nil))
test.i:2:1: internal compiler error: in extract_insn, at recog.c:2287