https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105485
Kewen Lin <linkw at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED --- Comment #2 from Kewen Lin <linkw at gcc dot gnu.org> --- I was wrong, the local branch which I used as old bif support isn't the one before new bif support. The bisection showed it's a regression and started from r12-5752 (new bif support). By looking to the old bif support, I noticed that it's expected that this function won't be resolved, but we need to emit one error message during expanding. With old bif support, __builtin_vec_vslv is binded to the normal (primary) bif enum (bif code), it needs overloaded resolver (target hook) to resolve it into the overloaded bif enum; while with new bif support, __builtin_vec_vslv is binded to the overload bif enum, it needs overloaded resolver to resolve it into the one defined in rs6000-builtins.def (one instance of overloaded). In new bif support, rs6000_gimple_fold_builtin won't be able to handle the unresolved overloaded bif. Note that it doesn't in old bif support, but both primary and overloaded code shares the same table, so it's fine and no ICEs. With new bif support, overloaded bif code has its own table.