In the kernel we have very good knowledge about what types of processors
are being used for what configuration; much less in userland and the code
as suggested by you would result in a silent failure on affected R10000
machines if version built not for the R10000 was being used - iow no
improvment over what we have right now. So for userland I'd prefer to
o MIPS I builds: use the some 28 nops.
o Builds for MIPS II or better: always use the branch likely
o A runtime test would have to be implemented pessimisticall because it
would have to rely on /proc being mounted which isn't available early in
the boot process. It's probably going to add more overhead than it
saves anyway.
There is a price for using branch likely - but not that high. In the grand
picture it'll almost certainly vanish in the benchmarking noise.