It doesn't optimise properly in this case, so it is some sort of shortcoming... But then, the gcc version included in 10.3 is an evolution of a 2y old compiler, and the newer versions are supposedly better. GCC is like any other free software project, it's moving constantly, but never perfect
Still, i'm stuck with 4 macros now, whereas i would've preferred to have gotten rid of them completely. But 10x speedup when turning RegWrite/Write into macros, and a few more percent for Grab/Advance, those are numbers i cannot go around
The situation isn't that bad, the macros themselves are pretty small still.
Maybe in a year or two, when even debian stable no longer shows such differences, we can get rid of them.