Patch to correct more bounds checks/diagnostics for arithmetic shift operands, this also make various invalid shifts actually invalid hence some test updates were needed.
As with my previous patches, there is no testcase for this as it is part of the merge of MC/AArch64/basic-a64-diagnostics.s.
What goes wrong if we just add the shift and let the isXYZ methods take care of it? It seems like it might be more consistent way to handle things in general.