https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107208

--- Comment #4 from Richard Earnshaw <rearnsha at gcc dot gnu.org> ---
(In reply to vfdff from comment #3)
> it seems releted to targetm.calls.function_value called by assign_parms, who
> return different behaviour for MODE_COMPLEX_FLOAT and MODE_COMPLEX_INT. With
> the following changes, then choose a pair of DI for the int case
> ```
> @@ -20333,7 +20333,7 @@ aarch64_vfp_is_call_or_return_candidate
> (machine_mode mode,
>        *count = 1;
>        new_mode = mode;
>      }
> -  else if (GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT)
> +  else if (COMPLEX_MODE_P (mode))
> 
> ```

This can't be right.  aarch64_vfp_is_call_or_return_candidate is for VFP/SIMD
arguments and complex int is not one of those.

Reply via email to