We need to be able to load and store s128 for memcpy inlining, where we want to generate Q register mem ops. Making these legal also requires that we add some support in other instructions. Regbankselect should also know about these since they have no GPR register class that can hold them, so need special handling to live on the FPR bank.
We're seeing the following error in our build which appears to have been introduced by this change:
fatal error: error in backend: Attempting to emit INSvi64gpr instruction but the Feature_HasNEON predicate(s) are not met
I've filed a bug PR42734 which also contains the reproducer.
We don't really support no-neon or no-fp targets in GISel at the moment. I've committed a workaround which will cause GISel to bail out of those target features are not present in r366957.