https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92225
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rsandifo at gcc dot gnu.org, | |uros at gcc dot gnu.org --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- Hmm, but we are asking if (reduc_fn != IFN_LAST && !direct_internal_fn_supported_p (reduc_fn, vectype_out, OPTIMIZE_FOR_SPEED)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, "reduc op not supported by target.\n"); reduc_fn = IFN_LAST; with reduc_fn == IFN_REDUC_MAX and a V2DImode type which eventually ends up in direct_optab_supported_p (optab=reduc_smax_scal_optab calling ix86_optab_supported_p with CODE_FOR_reduc_smax_scal_v2di and V2DImode which doesn't handle that specially. Richard - do all IFNs we query direct support for have to manually repeat constraints we set up? Or is (define_expand "reduc_plus_scal_<mode>" [(plus:REDUC_PLUS_MODE (match_operand:<ssescalarmode> 0 "register_operand") (match_operand:REDUC_PLUS_MODE 1 "register_operand"))] "" { simply in need of constraining for this mode? CCing Uros since this likely requires a target fix.