===================================================================
@@ -1174,6 +1181,8 @@
if (GET_MODE_SIZE (mode) > 0
&& GET_MODE_SIZE (mode) < 4
&& ! COMPLEX_MODE_P (mode)
+ && ! VECTOR_TYPE_P (ret_type)
+ && ! VECTOR_MODE_P (mode)
)
return gen_rtx_REG (SImode, FUNC_RETURN_REGNUM);
@@ -1193,6 +1202,8 @@
if (for_return != 1
|| GET_MODE_SIZE (mode) >= 4
|| COMPLEX_MODE_P (mode)
+ || VECTOR_MODE_P (mode)
+ || VECTOR_TYPE_P (type)
|| GET_MODE_SIZE (mode) < 1)
return mode;
===================================================================
@@ -267,6 +267,7 @@
#define LIBCALL_VALUE(MODE) \
gen_rtx_REG (((GET_MODE_CLASS (MODE) != MODE_INT \
|| COMPLEX_MODE_P (MODE) \
+ || VECTOR_MODE_P (MODE) \
|| GET_MODE_SIZE (MODE) >= 4) \
? (MODE) \
: SImode), \