Also bringing ARMRegisterBankInfo::getRegBankFromRegClass implementation up to speed with the *.td-definition.
This is a strict requirement for D44700: Improving InstructionSelect's performance by reducing MatchTable that brings a significant compile time reduction to GlobalISel.
The reason for the dependency is simple: the MatchTable optimization sometimes re-orders some of the rules if it's safe, for instance, if 2 rules are mutually exclusive because they explicitly check different register banks of the same operands of the same instruction sequences (by topology). If let's say the original table has 4 rules in order A1 B1 A2 B2, where A1 and A2 check the same register bank A (therefore not safe to re-order), and B1 and B2 check the same bank B, where A != B it's safe to reorder them as A1 A2 B1 B2 and it's beneficial as the register banks check could be extracted out and checked once for a group (check A (A1' A2') check B (B1' B2'). It could be noticed also that check B (B1' B2') check A (A1' A2') is equally legal. As a portion of a concrete MatchTable is unreachable due to GlobalISel falling back to SelectionDAG ISel on earlier stages (Legalization, Reg Bank Selection, etc) and / or due to selectiveness of the Reg Bank Select some of the register bank checks there were never covered before by the existing tests now will (for instance if A1 hid B1 A2 B2 part of the table, check B could have avoided execution altogether, while in modified check B (B1' B2') check A (A1' A2') table check B could be executed).
And some of those checks fail because they try to look up a register bank for a register class that is not handled by the implementation.
This patch fixes exactly that for ARM.