On Thu, Sep 10, 2020 at 11:51:51PM +0100, Kwok Cheung Yeung wrote: > simd_clone_vector_of_formal_parm_types prefers to use the TYPE_ARG_TYPES of > a function decl if available, but they do not contain entries for the hidden > caf_* parameters. Replacements are therefore not generated for them, and the > ICE occurs in ipa_simd_modify_function_body due to an assert firing when a > replacement is not found for these hidden arguments.
So, isn't it a bug that TYPE_ARG_TYPES is inconsistent with DECL_ARGUMENTS on the hidden arguments? That looks like lying to the middle-end to me, one doesn't have always a declaration with DECL_ARGUMENTS around, so sometimes TYPE_ARG_TYPES is the only way to get at the argument types. We had e.g. PR92305 in the past... Jakub