This looks to be as simple as we were missing the necessary opcodes from the switch statement. In trying to write IR test cases I found that ISel kept generating the pre-inc forms during lower, so I ended up writing all the tests in MIR. I suspect this is also the reason why this bug existed for so long without being discovered.
I didn't add the cases to the pre-index forms because the main loops skip this optimization for unscaled loads/stores. I'm not sure why this is the case, but perhaps that justs a missed opportunities to be addressed by a later patch (and if so the missing pre-index cases can be added then).
This should fix PR34035.
Chad