https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113950
--- Comment #7 from Jeevitha <jeevitha at gcc dot gnu.org> --- In GCC 11, we encountered a different issue that didn't result in an ICE. The following is the error message in GCC 11: error: too few arguments to function '__builtin_vsx_splat_2di' 11 | vsll_result = __builtin_vsx_splat_2di (sll_arg1); // ISSUE The error indicated a shortage of arguments for the built-in function. It expects two arguments because the function prototype is different in GCC 11 compared to GCC 12, 13, and 14. I have found that the commit responsible for changing the function prototype was made by Bill Schmidt (commit hash: d08236359eb22918ba067489edcec02857109d09). In this commit, he introduced new built-in functionality, where the function prototype is sourced from rs6000-builtin-new.def, which includes the following declaration: const vsll __builtin_vsx_splat_2di (signed long long); Prior to this commit ie, in gcc11, the function prototype was sourced from rs6000-builtin.def and included two arguments: /* 2 argument VSX builtins. */ BU_VSX_2 (SPLAT_2DI, "splat_2di", CONST, vsx_splat_v2di) These changes are controlled by the setting new_builtins_are_live. Bill made this change in his commit by adjusting this setting. Due to the above prototype changes, we are not backporting to GCC 11.