https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120960
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Actually both_p being false or true is both ok here. #undef DEF_GOACC_BUILTIN_COMPILER #define DEF_GOACC_BUILTIN_COMPILER(ENUM, NAME, TYPE, ATTRS) \ DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ flag_openacc, true, true, ATTRS, false, true) The only place which uses both_p and fallback_p is in get_asm_name . ``` const char *get_asm_name () const { if (both_p && fallback_p) return name + prefix_len; else return name; } ``` Which means if there is a call added to it and it does not get simplified, then it will call __builtin_. So the question becomes will anyone uses JIT with openmp/openacc offloading? Maybe not so much.