http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59617
Bug ID: 59617
Summary: [vectorizer] ICE in vectorizable_mask_load_store with
AVX-512F's gathers enabled.
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: kirill.yukhin at intel dot com
Created attachment 31529
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31529&action=edit
Reproducer
Hello, I am going to check in a patch, which will
enable AVX-512F new gathers instructions.
New gathers are use mask registers (%kN), while
vectorizable_mask_load_store asserts mask type to be compatible
with operand type.
This fails 416.gamess to build with -mavx512f -Ofast.
Reproducer attached.
Reproduce:
$ gfortran -S -Ofast -mavx512f hss2a.fppized.f
Back trace:
0xbcfc27 vectorizable_mask_load_store
/export/users/kyukhin/gcc/git/gcc/gcc/tree-vect-stmts.c:1901
0xbddf6c vectorizable_call
/export/users/kyukhin/gcc/git/gcc/gcc/tree-vect-stmts.c:2172
0xbe1021 vect_transform_stmt(gimple_statement_base*, gimple_stmt_iterator*,
bool*, _slp_tree*, _slp_instance*)
/export/users/kyukhin/gcc/git/gcc/gcc/tree-vect-stmts.c:7017
0xbe4731 vect_transform_loop(_loop_vec_info*)
/export/users/kyukhin/gcc/git/gcc/gcc/tree-vect-loop.c:6046
0xc00838 vectorize_loops()
/export/users/kyukhin/gcc/git/gcc/gcc/tree-vectorizer.c:476
I'll check my patch in with disabled gathers, so to enable it -
remove `#if 0' in gcc/config/i386/i386.c