https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70482
--- Comment #2 from Yuri Rumyantsev <ysrumyan at gmail dot com> --- Richard, The problem is in pattern matching: /* Pattern detected. */ if (dump_enabled_p ()) dump_printf_loc (MSG_NOTE, vect_location, "vect_recog_widen_mult_pattern: detected:\n"); /* Check target support */ vectype = get_vectype_for_scalar_type (half_type0); vecitype = get_vectype_for_scalar_type (itype); if (!vectype || !vecitype || !supportable_widening_operation (WIDEN_MULT_EXPR, last_stmt, vecitype, vectype, &dummy_code, &dummy_code, &dummy_int, &dummy_vec)) return NULL; We found paatern but it does not supported for 256-bit vectype and need to try for 128-bit.