https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119979
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Jeffrey A. Law from comment #3) > sh4eb is showing similar failures Is this the same issue: static machine_mode sh_promote_function_mode (const_tree type, machine_mode mode, int *punsignedp, const_tree funtype, int for_return) { if (sh_promote_prototypes (funtype)) return promote_mode (type, mode, punsignedp); else return default_promote_function_mode (type, mode, punsignedp, funtype, for_return); } The incoming int arg is promoted to SImode: machine_mode promote_function_mode (const_tree type, machine_mode mode, int *punsignedp, const_tree funtype, int for_return) { /* Called without a type node for a libcall. */ if (type == NULL_TREE) { if (INTEGRAL_MODE_P (mode)) return targetm.calls.promote_function_mode (NULL_TREE, mode, punsignedp, funtype, for_return); else return mode; } switch (TREE_CODE (type)) { case INTEGER_TYPE: case ENUMERAL_TYPE: case BOOLEAN_TYPE: case REAL_TYPE: case OFFSET_TYPE: case FIXED_POINT_TYPE: case POINTER_TYPE: case REFERENCE_TYPE: return targetm.calls.promote_function_mode (type, mode, punsignedp, funtype, for_return); default: return mode; } }