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.