diff --git a/llvm/lib/Target/SystemZ/SystemZInstrFormats.td b/llvm/lib/Target/SystemZ/SystemZInstrFormats.td --- a/llvm/lib/Target/SystemZ/SystemZInstrFormats.td +++ b/llvm/lib/Target/SystemZ/SystemZInstrFormats.td @@ -4822,7 +4822,7 @@ RegisterOperand cls2> : InstRIEf { let Constraints = "$R1 = $R1src"; let DisableEncoding = "$R1src"; @@ -5107,7 +5107,7 @@ class RotateSelectRIEfPseudo : Pseudo<(outs cls1:$R1), (ins cls1:$R1src, cls2:$R2, imm32zx8:$I3, imm32zx8:$I4, - imm32zx6:$I5), + imm32zx8:$I5), []> { let Constraints = "$R1 = $R1src"; let DisableEncoding = "$R1src"; @@ -5252,7 +5252,7 @@ class RotateSelectAliasRIEf : Alias<6, (outs cls1:$R1), (ins cls1:$R1src, cls2:$R2, imm32zx8:$I3, imm32zx8:$I4, - imm32zx6:$I5), []> { + imm32zx8:$I5), []> { let Constraints = "$R1 = $R1src"; } diff --git a/llvm/lib/Target/SystemZ/SystemZOperands.td b/llvm/lib/Target/SystemZ/SystemZOperands.td --- a/llvm/lib/Target/SystemZ/SystemZOperands.td +++ b/llvm/lib/Target/SystemZ/SystemZOperands.td @@ -357,10 +357,6 @@ return isUInt<4>(N->getZExtValue()); }], UIMM8EVEN, "U4Imm">; -defm imm32zx6 : Immediate(N->getZExtValue()); -}], NOOP_SDNodeXForm, "U6Imm">; - defm imm32sx8 : Immediate(N->getSExtValue()); }], SIMM8, "S8Imm">; diff --git a/llvm/test/MC/SystemZ/insn-bad-z196.s b/llvm/test/MC/SystemZ/insn-bad-z196.s --- a/llvm/test/MC/SystemZ/insn-bad-z196.s +++ b/llvm/test/MC/SystemZ/insn-bad-z196.s @@ -1208,10 +1208,6 @@ risbgn %r1, %r2, 0, 0, 0 -#CHECK: error: invalid operand -#CHECK: risbhg %r0,%r0,0,0,-1 -#CHECK: error: invalid operand -#CHECK: risbhg %r0,%r0,0,0,64 #CHECK: error: invalid operand #CHECK: risbhg %r0,%r0,0,-1,0 #CHECK: error: invalid operand @@ -1221,17 +1217,11 @@ #CHECK: error: invalid operand #CHECK: risbhg %r0,%r0,256,0,0 - risbhg %r0,%r0,0,0,-1 - risbhg %r0,%r0,0,0,64 risbhg %r0,%r0,0,-1,0 risbhg %r0,%r0,0,256,0 risbhg %r0,%r0,-1,0,0 risbhg %r0,%r0,256,0,0 -#CHECK: error: invalid operand -#CHECK: risblg %r0,%r0,0,0,-1 -#CHECK: error: invalid operand -#CHECK: risblg %r0,%r0,0,0,64 #CHECK: error: invalid operand #CHECK: risblg %r0,%r0,0,-1,0 #CHECK: error: invalid operand @@ -1241,8 +1231,6 @@ #CHECK: error: invalid operand #CHECK: risblg %r0,%r0,256,0,0 - risblg %r0,%r0,0,0,-1 - risblg %r0,%r0,0,0,64 risblg %r0,%r0,0,-1,0 risblg %r0,%r0,0,256,0 risblg %r0,%r0,-1,0,0 diff --git a/llvm/test/MC/SystemZ/insn-bad-zEC12.s b/llvm/test/MC/SystemZ/insn-bad-zEC12.s --- a/llvm/test/MC/SystemZ/insn-bad-zEC12.s +++ b/llvm/test/MC/SystemZ/insn-bad-zEC12.s @@ -370,10 +370,6 @@ ppno %r2, %r4 -#CHECK: error: invalid operand -#CHECK: risbgn %r0,%r0,0,0,-1 -#CHECK: error: invalid operand -#CHECK: risbgn %r0,%r0,0,0,64 #CHECK: error: invalid operand #CHECK: risbgn %r0,%r0,0,-1,0 #CHECK: error: invalid operand @@ -383,8 +379,6 @@ #CHECK: error: invalid operand #CHECK: risbgn %r0,%r0,256,0,0 - risbgn %r0,%r0,0,0,-1 - risbgn %r0,%r0,0,0,64 risbgn %r0,%r0,0,-1,0 risbgn %r0,%r0,0,256,0 risbgn %r0,%r0,-1,0,0 diff --git a/llvm/test/MC/SystemZ/insn-bad.s b/llvm/test/MC/SystemZ/insn-bad.s --- a/llvm/test/MC/SystemZ/insn-bad.s +++ b/llvm/test/MC/SystemZ/insn-bad.s @@ -5635,8 +5635,6 @@ #CHECK: error: invalid operand #CHECK: risbg %r0,%r0,0,0,-1 #CHECK: error: invalid operand -#CHECK: risbg %r0,%r0,0,0,64 -#CHECK: error: invalid operand #CHECK: risbg %r0,%r0,0,-1,0 #CHECK: error: invalid operand #CHECK: risbg %r0,%r0,0,256,0 @@ -5646,7 +5644,6 @@ #CHECK: risbg %r0,%r0,256,0,0 risbg %r0,%r0,0,0,-1 - risbg %r0,%r0,0,0,64 risbg %r0,%r0,0,-1,0 risbg %r0,%r0,0,256,0 risbg %r0,%r0,-1,0,0 @@ -5684,10 +5681,6 @@ rllg %r0,%r0,524288 rllg %r0,%r0,0(%r1,%r2) -#CHECK: error: invalid operand -#CHECK: rnsbg %r0,%r0,0,0,-1 -#CHECK: error: invalid operand -#CHECK: rnsbg %r0,%r0,0,0,64 #CHECK: error: invalid operand #CHECK: rnsbg %r0,%r0,0,-1,0 #CHECK: error: invalid operand @@ -5697,17 +5690,11 @@ #CHECK: error: invalid operand #CHECK: rnsbg %r0,%r0,256,0,0 - rnsbg %r0,%r0,0,0,-1 - rnsbg %r0,%r0,0,0,64 rnsbg %r0,%r0,0,-1,0 rnsbg %r0,%r0,0,256,0 rnsbg %r0,%r0,-1,0,0 rnsbg %r0,%r0,256,0,0 -#CHECK: error: invalid operand -#CHECK: rosbg %r0,%r0,0,0,-1 -#CHECK: error: invalid operand -#CHECK: rosbg %r0,%r0,0,0,64 #CHECK: error: invalid operand #CHECK: rosbg %r0,%r0,0,-1,0 #CHECK: error: invalid operand @@ -5717,8 +5704,6 @@ #CHECK: error: invalid operand #CHECK: rosbg %r0,%r0,256,0,0 - rosbg %r0,%r0,0,0,-1 - rosbg %r0,%r0,0,0,64 rosbg %r0,%r0,0,-1,0 rosbg %r0,%r0,0,256,0 rosbg %r0,%r0,-1,0,0 @@ -5765,10 +5750,6 @@ rrxtr %f0, %f2, %f0, 0 rrxtr %f2, %f0, %f0, 0 -#CHECK: error: invalid operand -#CHECK: rxsbg %r0,%r0,0,0,-1 -#CHECK: error: invalid operand -#CHECK: rxsbg %r0,%r0,0,0,64 #CHECK: error: invalid operand #CHECK: rxsbg %r0,%r0,0,-1,0 #CHECK: error: invalid operand @@ -5778,8 +5759,6 @@ #CHECK: error: invalid operand #CHECK: rxsbg %r0,%r0,256,0,0 - rxsbg %r0,%r0,0,0,-1 - rxsbg %r0,%r0,0,0,64 rxsbg %r0,%r0,0,-1,0 rxsbg %r0,%r0,0,256,0 rxsbg %r0,%r0,-1,0,0 diff --git a/llvm/test/MC/SystemZ/insn-good-z196.s b/llvm/test/MC/SystemZ/insn-good-z196.s --- a/llvm/test/MC/SystemZ/insn-good-z196.s +++ b/llvm/test/MC/SystemZ/insn-good-z196.s @@ -1777,6 +1777,8 @@ #CHECK: risbhg %r0, %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0x5d] #CHECK: risbhg %r0, %r0, 0, 0, 63 # encoding: [0xec,0x00,0x00,0x00,0x3f,0x5d] +#CHECK: risbhg %r0, %r0, 0, 0, 64 # encoding: [0xec,0x00,0x00,0x00,0x40,0x5d] +#CHECK: risbhg %r0, %r0, 0, 0, 255 # encoding: [0xec,0x00,0x00,0x00,0xff,0x5d] #CHECK: risbhg %r0, %r0, 0, 255, 0 # encoding: [0xec,0x00,0x00,0xff,0x00,0x5d] #CHECK: risbhg %r0, %r0, 255, 0, 0 # encoding: [0xec,0x00,0xff,0x00,0x00,0x5d] #CHECK: risbhg %r0, %r15, 0, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0x5d] @@ -1785,6 +1787,8 @@ risbhg %r0,%r0,0,0,0 risbhg %r0,%r0,0,0,63 + risbhg %r0,%r0,0,0,64 + risbhg %r0,%r0,0,0,255 risbhg %r0,%r0,0,255,0 risbhg %r0,%r0,255,0,0 risbhg %r0,%r15,0,0,0 @@ -1793,6 +1797,8 @@ #CHECK: risblg %r0, %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0x51] #CHECK: risblg %r0, %r0, 0, 0, 63 # encoding: [0xec,0x00,0x00,0x00,0x3f,0x51] +#CHECK: risblg %r0, %r0, 0, 0, 64 # encoding: [0xec,0x00,0x00,0x00,0x40,0x51] +#CHECK: risblg %r0, %r0, 0, 0, 255 # encoding: [0xec,0x00,0x00,0x00,0xff,0x51] #CHECK: risblg %r0, %r0, 0, 255, 0 # encoding: [0xec,0x00,0x00,0xff,0x00,0x51] #CHECK: risblg %r0, %r0, 255, 0, 0 # encoding: [0xec,0x00,0xff,0x00,0x00,0x51] #CHECK: risblg %r0, %r15, 0, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0x51] @@ -1801,6 +1807,8 @@ risblg %r0,%r0,0,0,0 risblg %r0,%r0,0,0,63 + risblg %r0,%r0,0,0,64 + risblg %r0,%r0,0,0,255 risblg %r0,%r0,0,255,0 risblg %r0,%r0,255,0,0 risblg %r0,%r15,0,0,0 diff --git a/llvm/test/MC/SystemZ/insn-good-zEC12.s b/llvm/test/MC/SystemZ/insn-good-zEC12.s --- a/llvm/test/MC/SystemZ/insn-good-zEC12.s +++ b/llvm/test/MC/SystemZ/insn-good-zEC12.s @@ -436,6 +436,8 @@ #CHECK: risbgn %r0, %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0x59] #CHECK: risbgn %r0, %r0, 0, 0, 63 # encoding: [0xec,0x00,0x00,0x00,0x3f,0x59] +#CHECK: risbgn %r0, %r0, 0, 0, 64 # encoding: [0xec,0x00,0x00,0x00,0x40,0x59] +#CHECK: risbgn %r0, %r0, 0, 0, 255 # encoding: [0xec,0x00,0x00,0x00,0xff,0x59] #CHECK: risbgn %r0, %r0, 0, 255, 0 # encoding: [0xec,0x00,0x00,0xff,0x00,0x59] #CHECK: risbgn %r0, %r0, 255, 0, 0 # encoding: [0xec,0x00,0xff,0x00,0x00,0x59] #CHECK: risbgn %r0, %r15, 0, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0x59] @@ -444,6 +446,8 @@ risbgn %r0,%r0,0,0,0 risbgn %r0,%r0,0,0,63 + risbgn %r0,%r0,0,0,64 + risbgn %r0,%r0,0,0,255 risbgn %r0,%r0,0,255,0 risbgn %r0,%r0,255,0,0 risbgn %r0,%r15,0,0,0 diff --git a/llvm/test/MC/SystemZ/insn-good.s b/llvm/test/MC/SystemZ/insn-good.s --- a/llvm/test/MC/SystemZ/insn-good.s +++ b/llvm/test/MC/SystemZ/insn-good.s @@ -13467,6 +13467,8 @@ #CHECK: risbg %r0, %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0x55] #CHECK: risbg %r0, %r0, 0, 0, 63 # encoding: [0xec,0x00,0x00,0x00,0x3f,0x55] +#CHECK: risbg %r0, %r0, 0, 0, 64 # encoding: [0xec,0x00,0x00,0x00,0x40,0x55] +#CHECK: risbg %r0, %r0, 0, 0, 255 # encoding: [0xec,0x00,0x00,0x00,0xff,0x55] #CHECK: risbg %r0, %r0, 0, 255, 0 # encoding: [0xec,0x00,0x00,0xff,0x00,0x55] #CHECK: risbg %r0, %r0, 255, 0, 0 # encoding: [0xec,0x00,0xff,0x00,0x00,0x55] #CHECK: risbg %r0, %r15, 0, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0x55] @@ -13475,6 +13477,8 @@ risbg %r0,%r0,0,0,0 risbg %r0,%r0,0,0,63 + risbg %r0,%r0,0,0,64 + risbg %r0,%r0,0,0,255 risbg %r0,%r0,0,255,0 risbg %r0,%r0,255,0,0 risbg %r0,%r15,0,0,0 @@ -13535,6 +13539,8 @@ #CHECK: rnsbg %r0, %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0x54] #CHECK: rnsbg %r0, %r0, 0, 0, 63 # encoding: [0xec,0x00,0x00,0x00,0x3f,0x54] +#CHECK: rnsbg %r0, %r0, 0, 0, 64 # encoding: [0xec,0x00,0x00,0x00,0x40,0x54] +#CHECK: rnsbg %r0, %r0, 0, 0, 255 # encoding: [0xec,0x00,0x00,0x00,0xff,0x54] #CHECK: rnsbg %r0, %r0, 0, 255, 0 # encoding: [0xec,0x00,0x00,0xff,0x00,0x54] #CHECK: rnsbg %r0, %r0, 255, 0, 0 # encoding: [0xec,0x00,0xff,0x00,0x00,0x54] #CHECK: rnsbg %r0, %r15, 0, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0x54] @@ -13543,6 +13549,8 @@ rnsbg %r0,%r0,0,0,0 rnsbg %r0,%r0,0,0,63 + rnsbg %r0,%r0,0,0,64 + rnsbg %r0,%r0,0,0,255 rnsbg %r0,%r0,0,255,0 rnsbg %r0,%r0,255,0,0 rnsbg %r0,%r15,0,0,0 @@ -13551,6 +13559,8 @@ #CHECK: rosbg %r0, %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0x56] #CHECK: rosbg %r0, %r0, 0, 0, 63 # encoding: [0xec,0x00,0x00,0x00,0x3f,0x56] +#CHECK: rosbg %r0, %r0, 0, 0, 64 # encoding: [0xec,0x00,0x00,0x00,0x40,0x56] +#CHECK: rosbg %r0, %r0, 0, 0, 255 # encoding: [0xec,0x00,0x00,0x00,0xff,0x56] #CHECK: rosbg %r0, %r0, 0, 255, 0 # encoding: [0xec,0x00,0x00,0xff,0x00,0x56] #CHECK: rosbg %r0, %r0, 255, 0, 0 # encoding: [0xec,0x00,0xff,0x00,0x00,0x56] #CHECK: rosbg %r0, %r15, 0, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0x56] @@ -13559,6 +13569,8 @@ rosbg %r0,%r0,0,0,0 rosbg %r0,%r0,0,0,63 + rosbg %r0,%r0,0,0,64 + rosbg %r0,%r0,0,0,255 rosbg %r0,%r0,0,255,0 rosbg %r0,%r0,255,0,0 rosbg %r0,%r15,0,0,0 @@ -13625,6 +13637,8 @@ #CHECK: rxsbg %r0, %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0x57] #CHECK: rxsbg %r0, %r0, 0, 0, 63 # encoding: [0xec,0x00,0x00,0x00,0x3f,0x57] +#CHECK: rxsbg %r0, %r0, 0, 0, 64 # encoding: [0xec,0x00,0x00,0x00,0x40,0x57] +#CHECK: rxsbg %r0, %r0, 0, 0, 255 # encoding: [0xec,0x00,0x00,0x00,0xff,0x57] #CHECK: rxsbg %r0, %r0, 0, 255, 0 # encoding: [0xec,0x00,0x00,0xff,0x00,0x57] #CHECK: rxsbg %r0, %r0, 255, 0, 0 # encoding: [0xec,0x00,0xff,0x00,0x00,0x57] #CHECK: rxsbg %r0, %r15, 0, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0x57] @@ -13633,6 +13647,8 @@ rxsbg %r0,%r0,0,0,0 rxsbg %r0,%r0,0,0,63 + rxsbg %r0,%r0,0,0,64 + rxsbg %r0,%r0,0,0,255 rxsbg %r0,%r0,0,255,0 rxsbg %r0,%r0,255,0,0 rxsbg %r0,%r15,0,0,0