[SystemZ] Allow any I5 in RotateSelect*
authorIlya Leoshkevich <iii@linux.ibm.com>
Tue, 4 Apr 2023 10:11:50 +0000 (12:11 +0200)
committerIlya Leoshkevich <iii@linux.ibm.com>
Tue, 4 Apr 2023 12:00:49 +0000 (14:00 +0200)
commitb2f5ab6a41e32bfd8151225b6032ca869f4e142f
tree8e88a550a5094e415a2ebe9408acba32696b8f0d
parent739ea090323ad50104a2a22e6da3e326d372e2ba
[SystemZ] Allow any I5 in RotateSelect*

For all RotateSelect* instructions, PoP says:

    Bits 0-1 of the I5 field (bits 32-33 of the instruction) are
    ignored.

LLVM, however, completely prohibits using them, e.g.:

    error: invalid operand for instruction
    asm("rxsbg %[r1],%[r2],177,43,228\n"

Lift this unnecessary restriction.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D146185
llvm/lib/Target/SystemZ/SystemZInstrFormats.td
llvm/lib/Target/SystemZ/SystemZOperands.td
llvm/test/MC/SystemZ/insn-bad-z196.s
llvm/test/MC/SystemZ/insn-bad-zEC12.s
llvm/test/MC/SystemZ/insn-bad.s
llvm/test/MC/SystemZ/insn-good-z196.s
llvm/test/MC/SystemZ/insn-good-zEC12.s
llvm/test/MC/SystemZ/insn-good.s