https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103622
Kewen Lin <linkw at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bergner at gcc dot gnu.org, | |linkw at gcc dot gnu.org, | |segher at gcc dot gnu.org, | |wschmidt at gcc dot gnu.org --- Comment #1 from Kewen Lin <linkw at gcc dot gnu.org> --- Confirmed, this requires one e300c3 cross build to reproduce: 2944│ for (; instance != NULL; instance = instance->next) 2945│ { 2946│ bool mismatch = false; 2947├───────────> tree nextparm = TYPE_ARG_TYPES (instance->fntype); 2948│ 2949│ for (unsigned int arg_i = 0; (gdb) p instance->fntype $1 = <tree 0x0> The overloaded bif fntype for RS6000_INST_VSEEQP relies on type usi_ftype_tf. rs6000_instance_info[RS6000_INST_VSEEQP].fntype = usi_ftype_tf; if (float128_type_node) usi_ftype_tf = build_function_type_list ( unsigned_intSI_type_node, float128_type_node, NULL_TREE) But on e300c3 there is no float128 type support (float128_type_node is NULL). One thought seems to check instance->fntype first and take (skip) it as mismatch if it's NULL.