https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103527

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
             Status|NEW                         |ASSIGNED

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
1.f:18:16: note:  ------>vectorizing statement: xin0_12 = .MASK_LOAD (_210,
32B, _209);
1.f:18:16: note:  transform statement.
1.f:18:16: note:  vect_is_simple_use: operand nm_31(D) > 1, type of def:
external
1.f:18:16: note:  vect_is_simple_use: operand (int) _199, type of def: internal
1.f:18:16: note:  vect_is_simple_use: vectype vector(8) int
1.f:18:16: note:  transform load. ncopies = 1
1.f:18:16: note:  vect_get_vec_defs_for_operand: indx_5
1.f:18:16: note:  vect_is_simple_use: operand (int) _199, type of def: internal
1.f:18:16: note:    def_stmt =  indx_5 = (int) _199;
1.f:18:16: note:  vect_get_vec_defs_for_operand: _209
1.f:18:16: note:  vect_is_simple_use: operand nm_31(D) > 1, type of def:
external
1.f:18:16: note:    def_stmt =  _209 = nm_31(D) > 1;
1.f:18:16: note:  created new init_stmt: _383 = (float) _209;
1.f:18:16: note:  created new init_stmt: vect_cst__384 = {_383, _383, _383,
_383, _383, _383, _383, _383};

and vect_build_gather_load_calls passes down vector(8) float as masktype to
vect_get_vec_defs_for_operand for the mask.  The builtins function type of
__builtin_ia32_gathersiv8sf is

vector(8) float <T5ef> (vector(8) float, const <float:32> *, vector(8) int,
vector(8) float, int)

so the masktype is indeed vector(8) float here.

Reply via email to