https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112406
--- Comment #8 from Robin Dapp <rdapp at gcc dot gnu.org> --- Ah of course it's not the first argument but the mask. During vectorization we already create fail1.c:15:10: note: add new stmt: vect__ifc__141.81_358 = .COND_ADD (vect_cst__356, vect_GetImageChannelMoments_M00_0_lsm.74_338, vect_cst__357, vect_GetImageChannelMoments_M00_0_lsm.74_338); where vect_cst__356 is vector([16,16]) unsigned char vect_cst__356; fail1.c:15:10: note: created new init_stmt: _355 = (unsigned char) _114; fail1.c:15:10: note: created new init_stmt: vect_cst__356 = [vec_duplicate_expr] _355; The type comes from vect_get_vec_defs_for_operand.