https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88234
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The problem is that the builtin has __vector signed int arguments: <function_decl 0x7fffefda2700 __builtin_altivec_vadduwm type <function_type 0x7fffefda07e0 type <vector_type 0x7fffefd547e0 __vector signed int type <integer_type 0x7fffefc8f5e8 int> V4SI size <integer_cst 0x7fffefc91000 constant 128> unit-size <integer_cst 0x7fffefc91018 constant 16> align:128 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffefd54738 nunits:4> SI size <integer_cst 0x7fffefc911f8 constant 32> unit-size <integer_cst 0x7fffefc91210 constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffefd742a0 arg-types <tree_list 0x7fffefd9d618 value <vector_type 0x7fffefd547e0 __vector signed int> chain <tree_list 0x7fffefd9d640 value <vector_type 0x7fffefd547e0 __vector signed int> chain <tree_list 0x7fffefc92050 value <void_type 0x7fffefc8ff18 void>>>> pointer_to_this <pointer_type 0x7fffefe53348>> readonly nothrow public external built-in decl_6 SI <built-in>:0:0 align:32 warn_if_not_align:0 built-in: BUILT_IN_MD:48 context <translation_unit_decl 0x7fffefe1aac8 pr88234.c> chain <function_decl 0x7fffefda2800 __builtin_altivec_vaddfp>> Guess most of the builtins have those, so the easiest fix to me seems to be to cast it in the gimple_fold targhook.