[llvm] r265296 - [SystemZ] Add compare-and-branch instructions to MC
Ulrich Weigand via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 4 07:26:43 PDT 2016
Author: uweigand
Date: Mon Apr 4 09:26:43 2016
New Revision: 265296
URL: http://llvm.org/viewvc/llvm-project?rev=265296&view=rev
Log:
[SystemZ] Add compare-and-branch instructions to MC
This adds MC support for fused compare + indirect branch instructions,
ie. CRB, CGRB, CLRB, CLGRB, CIB, CGIB, CLIB, CLGIB. They aren't actually
generated yet -- this is preparation for their use for conditional
returns in the next iteration of D17339.
Author: koriakin
Differential Revision: http://reviews.llvm.org/D18742
Modified:
llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td
llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td
llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt
llvm/trunk/test/MC/SystemZ/insn-good.s
Modified: llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td?rev=265296&r1=265295&r2=265296&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td Mon Apr 4 09:26:43 2016
@@ -260,6 +260,24 @@ class InstRIL<bits<12> op, dag outs, dag
let Inst{31-0} = I2;
}
+class InstRIS<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
+ : InstSystemZ<6, outs, ins, asmstr, pattern> {
+ field bits<48> Inst;
+ field bits<48> SoftFail = 0;
+
+ bits<4> R1;
+ bits<8> I2;
+ bits<4> M3;
+ bits<16> BD4;
+
+ let Inst{47-40} = op{15-8};
+ let Inst{39-36} = R1;
+ let Inst{35-32} = M3;
+ let Inst{31-16} = BD4;
+ let Inst{15-8} = I2;
+ let Inst{7-0} = op{7-0};
+}
+
class InstRR<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
: InstSystemZ<2, outs, ins, asmstr, pattern> {
field bits<16> Inst;
@@ -320,6 +338,25 @@ class InstRRF<bits<16> op, dag outs, dag
let Inst{3-0} = R2;
}
+class InstRRS<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
+ : InstSystemZ<6, outs, ins, asmstr, pattern> {
+ field bits<48> Inst;
+ field bits<48> SoftFail = 0;
+
+ bits<4> R1;
+ bits<4> R2;
+ bits<4> M3;
+ bits<16> BD4;
+
+ let Inst{47-40} = op{15-8};
+ let Inst{39-36} = R1;
+ let Inst{35-32} = R2;
+ let Inst{31-16} = BD4;
+ let Inst{15-12} = M3;
+ let Inst{11-8} = 0;
+ let Inst{7-0} = op{7-0};
+}
+
class InstRX<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
: InstSystemZ<4, outs, ins, asmstr, pattern> {
field bits<32> Inst;
Modified: llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td?rev=265296&r1=265295&r2=265296&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td Mon Apr 4 09:26:43 2016
@@ -110,6 +110,30 @@ multiclass CompareBranches<Operand ccmas
def LGIJ : InstRIEc<0xEC7D, (outs), (ins GR64:$R1, imm64zx8:$I2, ccmask:$M3,
brtarget16:$RI4),
"clgij"##pos1##"\t$R1, $I2, "##pos2##"$RI4", []>;
+ def RB : InstRRS<0xECF6, (outs), (ins GR32:$R1, GR32:$R2, ccmask:$M3,
+ bdaddr12only:$BD4),
+ "crb"##pos1##"\t$R1, $R2, "##pos2##"$BD4", []>;
+ def GRB : InstRRS<0xECE4, (outs), (ins GR64:$R1, GR64:$R2, ccmask:$M3,
+ bdaddr12only:$BD4),
+ "cgrb"##pos1##"\t$R1, $R2, "##pos2##"$BD4", []>;
+ def IB : InstRIS<0xECFE, (outs), (ins GR32:$R1, imm32sx8:$I2, ccmask:$M3,
+ bdaddr12only:$BD4),
+ "cib"##pos1##"\t$R1, $I2, "##pos2##"$BD4", []>;
+ def GIB : InstRIS<0xECFC, (outs), (ins GR64:$R1, imm64sx8:$I2, ccmask:$M3,
+ bdaddr12only:$BD4),
+ "cgib"##pos1##"\t$R1, $I2, "##pos2##"$BD4", []>;
+ def LRB : InstRRS<0xECF7, (outs), (ins GR32:$R1, GR32:$R2, ccmask:$M3,
+ bdaddr12only:$BD4),
+ "clrb"##pos1##"\t$R1, $R2, "##pos2##"$BD4", []>;
+ def LGRB : InstRRS<0xECE5, (outs), (ins GR64:$R1, GR64:$R2, ccmask:$M3,
+ bdaddr12only:$BD4),
+ "clgrb"##pos1##"\t$R1, $R2, "##pos2##"$BD4", []>;
+ def LIB : InstRIS<0xECFF, (outs), (ins GR32:$R1, imm32zx8:$I2, ccmask:$M3,
+ bdaddr12only:$BD4),
+ "clib"##pos1##"\t$R1, $I2, "##pos2##"$BD4", []>;
+ def LGIB : InstRIS<0xECFD, (outs), (ins GR64:$R1, imm64zx8:$I2, ccmask:$M3,
+ bdaddr12only:$BD4),
+ "clgib"##pos1##"\t$R1, $I2, "##pos2##"$BD4", []>;
}
}
let isCodeGenOnly = 1 in
@@ -157,30 +181,54 @@ defm AsmNO : CondExtendedMnemonic<14, "
// we need the custom parsing routines to select the correct register class.
multiclass IntCondExtendedMnemonicA<bits<4> ccmask, string name> {
let isBranch = 1, isTerminator = 1, M3 = ccmask in {
- def CR : InstRIEb<0xEC76, (outs), (ins GR32:$R1, GR32:$R2,
- brtarget16:$RI4),
- "crj"##name##"\t$R1, $R2, $RI4", []>;
- def CGR : InstRIEb<0xEC64, (outs), (ins GR64:$R1, GR64:$R2,
- brtarget16:$RI4),
- "cgrj"##name##"\t$R1, $R2, $RI4", []>;
- def CI : InstRIEc<0xEC7E, (outs), (ins GR32:$R1, imm32sx8:$I2,
- brtarget16:$RI4),
- "cij"##name##"\t$R1, $I2, $RI4", []>;
- def CGI : InstRIEc<0xEC7C, (outs), (ins GR64:$R1, imm64sx8:$I2,
- brtarget16:$RI4),
- "cgij"##name##"\t$R1, $I2, $RI4", []>;
- def CLR : InstRIEb<0xEC77, (outs), (ins GR32:$R1, GR32:$R2,
- brtarget16:$RI4),
- "clrj"##name##"\t$R1, $R2, $RI4", []>;
- def CLGR : InstRIEb<0xEC65, (outs), (ins GR64:$R1, GR64:$R2,
+ def CRJ : InstRIEb<0xEC76, (outs), (ins GR32:$R1, GR32:$R2,
brtarget16:$RI4),
- "clgrj"##name##"\t$R1, $R2, $RI4", []>;
- def CLI : InstRIEc<0xEC7F, (outs), (ins GR32:$R1, imm32zx8:$I2,
+ "crj"##name##"\t$R1, $R2, $RI4", []>;
+ def CGRJ : InstRIEb<0xEC64, (outs), (ins GR64:$R1, GR64:$R2,
brtarget16:$RI4),
- "clij"##name##"\t$R1, $I2, $RI4", []>;
- def CLGI : InstRIEc<0xEC7D, (outs), (ins GR64:$R1, imm64zx8:$I2,
+ "cgrj"##name##"\t$R1, $R2, $RI4", []>;
+ def CIJ : InstRIEc<0xEC7E, (outs), (ins GR32:$R1, imm32sx8:$I2,
brtarget16:$RI4),
- "clgij"##name##"\t$R1, $I2, $RI4", []>;
+ "cij"##name##"\t$R1, $I2, $RI4", []>;
+ def CGIJ : InstRIEc<0xEC7C, (outs), (ins GR64:$R1, imm64sx8:$I2,
+ brtarget16:$RI4),
+ "cgij"##name##"\t$R1, $I2, $RI4", []>;
+ def CLRJ : InstRIEb<0xEC77, (outs), (ins GR32:$R1, GR32:$R2,
+ brtarget16:$RI4),
+ "clrj"##name##"\t$R1, $R2, $RI4", []>;
+ def CLGRJ : InstRIEb<0xEC65, (outs), (ins GR64:$R1, GR64:$R2,
+ brtarget16:$RI4),
+ "clgrj"##name##"\t$R1, $R2, $RI4", []>;
+ def CLIJ : InstRIEc<0xEC7F, (outs), (ins GR32:$R1, imm32zx8:$I2,
+ brtarget16:$RI4),
+ "clij"##name##"\t$R1, $I2, $RI4", []>;
+ def CLGIJ : InstRIEc<0xEC7D, (outs), (ins GR64:$R1, imm64zx8:$I2,
+ brtarget16:$RI4),
+ "clgij"##name##"\t$R1, $I2, $RI4", []>;
+ def CRB : InstRRS<0xECF6, (outs), (ins GR32:$R1, GR32:$R2,
+ bdaddr12only:$BD4),
+ "crb"##name##"\t$R1, $R2, $BD4", []>;
+ def CGRB : InstRRS<0xECE4, (outs), (ins GR64:$R1, GR64:$R2,
+ bdaddr12only:$BD4),
+ "cgrb"##name##"\t$R1, $R2, $BD4", []>;
+ def CIB : InstRIS<0xECFE, (outs), (ins GR32:$R1, imm32sx8:$I2,
+ bdaddr12only:$BD4),
+ "cib"##name##"\t$R1, $I2, $BD4", []>;
+ def CGIB : InstRIS<0xECFC, (outs), (ins GR64:$R1, imm64sx8:$I2,
+ bdaddr12only:$BD4),
+ "cgib"##name##"\t$R1, $I2, $BD4", []>;
+ def CLRB : InstRRS<0xECF7, (outs), (ins GR32:$R1, GR32:$R2,
+ bdaddr12only:$BD4),
+ "clrb"##name##"\t$R1, $R2, $BD4", []>;
+ def CLGRB : InstRRS<0xECE5, (outs), (ins GR64:$R1, GR64:$R2,
+ bdaddr12only:$BD4),
+ "clgrb"##name##"\t$R1, $R2, $BD4", []>;
+ def CLIB : InstRIS<0xECFF, (outs), (ins GR32:$R1, imm32zx8:$I2,
+ bdaddr12only:$BD4),
+ "clib"##name##"\t$R1, $I2, $BD4", []>;
+ def CLGIB : InstRIS<0xECFD, (outs), (ins GR64:$R1, imm64zx8:$I2,
+ bdaddr12only:$BD4),
+ "clgib"##name##"\t$R1, $I2, $BD4", []>;
}
}
multiclass IntCondExtendedMnemonic<bits<4> ccmask, string name1, string name2>
Modified: llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt?rev=265296&r1=265295&r2=265296&view=diff
==============================================================================
--- llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt (original)
+++ llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt Mon Apr 4 09:26:43 2016
@@ -1288,6 +1288,72 @@
# CHECK: cgr %r7, %r8
0xb9 0x20 0x00 0x78
+# CHECK: cgrb %r0, %r0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xe4
+
+# CHECK: cgrb %r0, %r15, 0, 0
+0xec 0x0f 0x00 0x00 0x00 0xe4
+
+# CHECK: cgrb %r15, %r0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xe4
+
+# CHECK: cgrb %r7, %r8, 0, 0
+0xec 0x78 0x00 0x00 0x00 0xe4
+
+# CHECK: cgrb %r0, %r0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xe4
+
+# CHECK: cgrb %r0, %r0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xe4
+
+# CHECK: cgrb %r0, %r0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xe4
+
+# CHECK: cgrb %r0, %r0, 1, 0
+0xec 0x00 0x00 0x00 0x10 0xe4
+
+# CHECK: cgrbh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x20 0xe4
+
+# CHECK: cgrb %r0, %r0, 3, 0
+0xec 0x00 0x00 0x00 0x30 0xe4
+
+# CHECK: cgrbl %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x40 0xe4
+
+# CHECK: cgrb %r0, %r0, 5, 0
+0xec 0x00 0x00 0x00 0x50 0xe4
+
+# CHECK: cgrblh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x60 0xe4
+
+# CHECK: cgrb %r0, %r0, 7, 0
+0xec 0x00 0x00 0x00 0x70 0xe4
+
+# CHECK: cgrbe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x80 0xe4
+
+# CHECK: cgrb %r0, %r0, 9, 0
+0xec 0x00 0x00 0x00 0x90 0xe4
+
+# CHECK: cgrbhe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xa0 0xe4
+
+# CHECK: cgrb %r0, %r0, 11, 0
+0xec 0x00 0x00 0x00 0xb0 0xe4
+
+# CHECK: cgrble %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xc0 0xe4
+
+# CHECK: cgrb %r0, %r0, 13, 0
+0xec 0x00 0x00 0x00 0xd0 0xe4
+
+# CHECK: cgrb %r0, %r0, 14, 0
+0xec 0x00 0x00 0x00 0xe0 0xe4
+
+# CHECK: cgrb %r0, %r0, 15, 0
+0xec 0x00 0x00 0x00 0xf0 0xe4
+
# CHECK: cg %r0, -524288
0xe3 0x00 0x00 0x00 0x80 0x20
@@ -1318,6 +1384,78 @@
# CHECK: cg %r15, 0
0xe3 0xf0 0x00 0x00 0x00 0x20
+# CHECK: cgib %r0, 0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, -128, 0, 0
+0xec 0x00 0x00 0x00 0x80 0xfc
+
+# CHECK: cgib %r0, -1, 0, 0
+0xec 0x00 0x00 0x00 0xff 0xfc
+
+# CHECK: cgib %r0, 127, 0, 0
+0xec 0x00 0x00 0x00 0x7f 0xfc
+
+# CHECK: cgib %r15, 0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r7, 100, 0, 0
+0xec 0x70 0x00 0x00 0x64 0xfc
+
+# CHECK: cgib %r0, 0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 1, 0
+0xec 0x01 0x00 0x00 0x00 0xfc
+
+# CHECK: cgibh %r0, 0, 0
+0xec 0x02 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 3, 0
+0xec 0x03 0x00 0x00 0x00 0xfc
+
+# CHECK: cgibl %r0, 0, 0
+0xec 0x04 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 5, 0
+0xec 0x05 0x00 0x00 0x00 0xfc
+
+# CHECK: cgiblh %r0, 0, 0
+0xec 0x06 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 7, 0
+0xec 0x07 0x00 0x00 0x00 0xfc
+
+# CHECK: cgibe %r0, 0, 0
+0xec 0x08 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 9, 0
+0xec 0x09 0x00 0x00 0x00 0xfc
+
+# CHECK: cgibhe %r0, 0, 0
+0xec 0x0a 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 11, 0
+0xec 0x0b 0x00 0x00 0x00 0xfc
+
+# CHECK: cgible %r0, 0, 0
+0xec 0x0c 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 13, 0
+0xec 0x0d 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 14, 0
+0xec 0x0e 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 15, 0
+0xec 0x0f 0x00 0x00 0x00 0xfc
+
# CHECK: cgxbr %r0, 0, %f0
0xb3 0xaa 0x00 0x00
@@ -1498,6 +1636,78 @@
# CHECK: chy %r15, 0
0xe3 0xf0 0x00 0x00 0x00 0x79
+# CHECK: cib %r0, 0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, -128, 0, 0
+0xec 0x00 0x00 0x00 0x80 0xfe
+
+# CHECK: cib %r0, -1, 0, 0
+0xec 0x00 0x00 0x00 0xff 0xfe
+
+# CHECK: cib %r0, 127, 0, 0
+0xec 0x00 0x00 0x00 0x7f 0xfe
+
+# CHECK: cib %r15, 0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r7, 100, 0, 0
+0xec 0x70 0x00 0x00 0x64 0xfe
+
+# CHECK: cib %r0, 0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xfe
+
+# CHECK: cib %r0, 0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xfe
+
+# CHECK: cib %r0, 0, 1, 0
+0xec 0x01 0x00 0x00 0x00 0xfe
+
+# CHECK: cibh %r0, 0, 0
+0xec 0x02 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 3, 0
+0xec 0x03 0x00 0x00 0x00 0xfe
+
+# CHECK: cibl %r0, 0, 0
+0xec 0x04 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 5, 0
+0xec 0x05 0x00 0x00 0x00 0xfe
+
+# CHECK: ciblh %r0, 0, 0
+0xec 0x06 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 7, 0
+0xec 0x07 0x00 0x00 0x00 0xfe
+
+# CHECK: cibe %r0, 0, 0
+0xec 0x08 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 9, 0
+0xec 0x09 0x00 0x00 0x00 0xfe
+
+# CHECK: cibhe %r0, 0, 0
+0xec 0x0a 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 11, 0
+0xec 0x0b 0x00 0x00 0x00 0xfe
+
+# CHECK: cible %r0, 0, 0
+0xec 0x0c 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 13, 0
+0xec 0x0d 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 14, 0
+0xec 0x0e 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 15, 0
+0xec 0x0f 0x00 0x00 0x00 0xfe
+
# CHECK: cih %r0, -2147483648
0xcc 0x0d 0x80 0x00 0x00 0x00
@@ -1642,6 +1852,78 @@
# CHECK: clgebr %r15, 0, %f0, 1
0xb3 0xac 0x01 0xf0
+# CHECK: clgib %r0, 0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 128, 0, 0
+0xec 0x00 0x00 0x00 0x80 0xfd
+
+# CHECK: clgib %r0, 255, 0, 0
+0xec 0x00 0x00 0x00 0xff 0xfd
+
+# CHECK: clgib %r0, 127, 0, 0
+0xec 0x00 0x00 0x00 0x7f 0xfd
+
+# CHECK: clgib %r15, 0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r7, 100, 0, 0
+0xec 0x70 0x00 0x00 0x64 0xfd
+
+# CHECK: clgib %r0, 0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 1, 0
+0xec 0x01 0x00 0x00 0x00 0xfd
+
+# CHECK: clgibh %r0, 0, 0
+0xec 0x02 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 3, 0
+0xec 0x03 0x00 0x00 0x00 0xfd
+
+# CHECK: clgibl %r0, 0, 0
+0xec 0x04 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 5, 0
+0xec 0x05 0x00 0x00 0x00 0xfd
+
+# CHECK: clgiblh %r0, 0, 0
+0xec 0x06 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 7, 0
+0xec 0x07 0x00 0x00 0x00 0xfd
+
+# CHECK: clgibe %r0, 0, 0
+0xec 0x08 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 9, 0
+0xec 0x09 0x00 0x00 0x00 0xfd
+
+# CHECK: clgibhe %r0, 0, 0
+0xec 0x0a 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 11, 0
+0xec 0x0b 0x00 0x00 0x00 0xfd
+
+# CHECK: clgible %r0, 0, 0
+0xec 0x0c 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 13, 0
+0xec 0x0d 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 14, 0
+0xec 0x0e 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 15, 0
+0xec 0x0f 0x00 0x00 0x00 0xfd
+
# CHECK: clgxbr %r0, 0, %f0, 1
0xb3 0xae 0x01 0x00
@@ -1774,6 +2056,72 @@
# CHECK: clgr %r7, %r8
0xb9 0x21 0x00 0x78
+# CHECK: clgrb %r0, %r0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xe5
+
+# CHECK: clgrb %r0, %r15, 0, 0
+0xec 0x0f 0x00 0x00 0x00 0xe5
+
+# CHECK: clgrb %r15, %r0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xe5
+
+# CHECK: clgrb %r7, %r8, 0, 0
+0xec 0x78 0x00 0x00 0x00 0xe5
+
+# CHECK: clgrb %r0, %r0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xe5
+
+# CHECK: clgrb %r0, %r0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xe5
+
+# CHECK: clgrb %r0, %r0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xe5
+
+# CHECK: clgrb %r0, %r0, 1, 0
+0xec 0x00 0x00 0x00 0x10 0xe5
+
+# CHECK: clgrbh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x20 0xe5
+
+# CHECK: clgrb %r0, %r0, 3, 0
+0xec 0x00 0x00 0x00 0x30 0xe5
+
+# CHECK: clgrbl %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x40 0xe5
+
+# CHECK: clgrb %r0, %r0, 5, 0
+0xec 0x00 0x00 0x00 0x50 0xe5
+
+# CHECK: clgrblh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x60 0xe5
+
+# CHECK: clgrb %r0, %r0, 7, 0
+0xec 0x00 0x00 0x00 0x70 0xe5
+
+# CHECK: clgrbe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x80 0xe5
+
+# CHECK: clgrb %r0, %r0, 9, 0
+0xec 0x00 0x00 0x00 0x90 0xe5
+
+# CHECK: clgrbhe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xa0 0xe5
+
+# CHECK: clgrb %r0, %r0, 11, 0
+0xec 0x00 0x00 0x00 0xb0 0xe5
+
+# CHECK: clgrble %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xc0 0xe5
+
+# CHECK: clgrb %r0, %r0, 13, 0
+0xec 0x00 0x00 0x00 0xd0 0xe5
+
+# CHECK: clgrb %r0, %r0, 14, 0
+0xec 0x00 0x00 0x00 0xe0 0xe5
+
+# CHECK: clgrb %r0, %r0, 15, 0
+0xec 0x00 0x00 0x00 0xf0 0xe5
+
# CHECK: clg %r0, -524288
0xe3 0x00 0x00 0x00 0x80 0x21
@@ -1876,6 +2224,78 @@
# CHECK: cli 4095(%r15), 42
0x95 0x2a 0xff 0xff
+# CHECK: clib %r0, 0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 128, 0, 0
+0xec 0x00 0x00 0x00 0x80 0xff
+
+# CHECK: clib %r0, 255, 0, 0
+0xec 0x00 0x00 0x00 0xff 0xff
+
+# CHECK: clib %r0, 127, 0, 0
+0xec 0x00 0x00 0x00 0x7f 0xff
+
+# CHECK: clib %r15, 0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r7, 100, 0, 0
+0xec 0x70 0x00 0x00 0x64 0xff
+
+# CHECK: clib %r0, 0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xff
+
+# CHECK: clib %r0, 0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xff
+
+# CHECK: clib %r0, 0, 1, 0
+0xec 0x01 0x00 0x00 0x00 0xff
+
+# CHECK: clibh %r0, 0, 0
+0xec 0x02 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 3, 0
+0xec 0x03 0x00 0x00 0x00 0xff
+
+# CHECK: clibl %r0, 0, 0
+0xec 0x04 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 5, 0
+0xec 0x05 0x00 0x00 0x00 0xff
+
+# CHECK: cliblh %r0, 0, 0
+0xec 0x06 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 7, 0
+0xec 0x07 0x00 0x00 0x00 0xff
+
+# CHECK: clibe %r0, 0, 0
+0xec 0x08 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 9, 0
+0xec 0x09 0x00 0x00 0x00 0xff
+
+# CHECK: clibhe %r0, 0, 0
+0xec 0x0a 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 11, 0
+0xec 0x0b 0x00 0x00 0x00 0xff
+
+# CHECK: clible %r0, 0, 0
+0xec 0x0c 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 13, 0
+0xec 0x0d 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 14, 0
+0xec 0x0e 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 15, 0
+0xec 0x0f 0x00 0x00 0x00 0xff
+
# CHECK: clih %r0, 0
0xcc 0x0f 0x00 0x00 0x00 0x00
@@ -1930,6 +2350,72 @@
# CHECK: clr %r7, %r8
0x15 0x78
+# CHECK: clrb %r0, %r0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xf7
+
+# CHECK: clrb %r0, %r15, 0, 0
+0xec 0x0f 0x00 0x00 0x00 0xf7
+
+# CHECK: clrb %r15, %r0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xf7
+
+# CHECK: clrb %r7, %r8, 0, 0
+0xec 0x78 0x00 0x00 0x00 0xf7
+
+# CHECK: clrb %r0, %r0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xf7
+
+# CHECK: clrb %r0, %r0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xf7
+
+# CHECK: clrb %r0, %r0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xf7
+
+# CHECK: clrb %r0, %r0, 1, 0
+0xec 0x00 0x00 0x00 0x10 0xf7
+
+# CHECK: clrbh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x20 0xf7
+
+# CHECK: clrb %r0, %r0, 3, 0
+0xec 0x00 0x00 0x00 0x30 0xf7
+
+# CHECK: clrbl %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x40 0xf7
+
+# CHECK: clrb %r0, %r0, 5, 0
+0xec 0x00 0x00 0x00 0x50 0xf7
+
+# CHECK: clrblh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x60 0xf7
+
+# CHECK: clrb %r0, %r0, 7, 0
+0xec 0x00 0x00 0x00 0x70 0xf7
+
+# CHECK: clrbe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x80 0xf7
+
+# CHECK: clrb %r0, %r0, 9, 0
+0xec 0x00 0x00 0x00 0x90 0xf7
+
+# CHECK: clrbhe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xa0 0xf7
+
+# CHECK: clrb %r0, %r0, 11, 0
+0xec 0x00 0x00 0x00 0xb0 0xf7
+
+# CHECK: clrble %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xc0 0xf7
+
+# CHECK: clrb %r0, %r0, 13, 0
+0xec 0x00 0x00 0x00 0xd0 0xf7
+
+# CHECK: clrb %r0, %r0, 14, 0
+0xec 0x00 0x00 0x00 0xe0 0xf7
+
+# CHECK: clrb %r0, %r0, 15, 0
+0xec 0x00 0x00 0x00 0xf0 0xf7
+
# CHECK: clst %r0, %r0
0xb2 0x5d 0x00 0x00
@@ -2023,6 +2509,72 @@
# CHECK: cr %r7, %r8
0x19 0x78
+# CHECK: crb %r0, %r0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xf6
+
+# CHECK: crb %r0, %r15, 0, 0
+0xec 0x0f 0x00 0x00 0x00 0xf6
+
+# CHECK: crb %r15, %r0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xf6
+
+# CHECK: crb %r7, %r8, 0, 0
+0xec 0x78 0x00 0x00 0x00 0xf6
+
+# CHECK: crb %r0, %r0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xf6
+
+# CHECK: crb %r0, %r0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xf6
+
+# CHECK: crb %r0, %r0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xf6
+
+# CHECK: crb %r0, %r0, 1, 0
+0xec 0x00 0x00 0x00 0x10 0xf6
+
+# CHECK: crbh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x20 0xf6
+
+# CHECK: crb %r0, %r0, 3, 0
+0xec 0x00 0x00 0x00 0x30 0xf6
+
+# CHECK: crbl %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x40 0xf6
+
+# CHECK: crb %r0, %r0, 5, 0
+0xec 0x00 0x00 0x00 0x50 0xf6
+
+# CHECK: crblh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x60 0xf6
+
+# CHECK: crb %r0, %r0, 7, 0
+0xec 0x00 0x00 0x00 0x70 0xf6
+
+# CHECK: crbe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x80 0xf6
+
+# CHECK: crb %r0, %r0, 9, 0
+0xec 0x00 0x00 0x00 0x90 0xf6
+
+# CHECK: crbhe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xa0 0xf6
+
+# CHECK: crb %r0, %r0, 11, 0
+0xec 0x00 0x00 0x00 0xb0 0xf6
+
+# CHECK: crble %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xc0 0xf6
+
+# CHECK: crb %r0, %r0, 13, 0
+0xec 0x00 0x00 0x00 0xd0 0xf6
+
+# CHECK: crb %r0, %r0, 14, 0
+0xec 0x00 0x00 0x00 0xe0 0xf6
+
+# CHECK: crb %r0, %r0, 15, 0
+0xec 0x00 0x00 0x00 0xf0 0xf6
+
# CHECK: csg %r0, %r0, -524288
0xeb 0x00 0x00 0x00 0x80 0x30
Modified: llvm/trunk/test/MC/SystemZ/insn-good.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/SystemZ/insn-good.s?rev=265296&r1=265295&r2=265296&view=diff
==============================================================================
--- llvm/trunk/test/MC/SystemZ/insn-good.s (original)
+++ llvm/trunk/test/MC/SystemZ/insn-good.s Mon Apr 4 09:26:43 2016
@@ -1637,6 +1637,86 @@
cghsi 4095(%r1), 42
cghsi 4095(%r15), 42
+#CHECK: cgib %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xfc]
+#CHECK: cgib %r0, -128, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xfc]
+#CHECK: cgib %r0, 127, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x7f,0xfc]
+#CHECK: cgib %r15, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xfc]
+#CHECK: cgib %r7, -1, 0, 0 # encoding: [0xec,0x70,0x00,0x00,0xff,0xfc]
+#CHECK: cgib %r0, 0, 1, 0 # encoding: [0xec,0x01,0x00,0x00,0x00,0xfc]
+#CHECK: cgib %r0, 0, 15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xfc]
+#CHECK: cgib %r0, 0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xfc]
+#CHECK: cgib %r0, 0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xfc]
+#CHECK: cgib %r0, 0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xfc]
+ cgib %r0, 0, 0, 0
+ cgib %r0, -128, 0, 0
+ cgib %r0, 127, 0, 0
+ cgib %r15, 0, 0, 0
+ cgib %r7, -1, 0, 0
+ cgib %r0, 0, 1, 0
+ cgib %r0, 0, 15, 0
+ cgib %r0, 0, 0, 0(%r13)
+ cgib %r0, 0, 0, 4095
+ cgib %r0, 0, 0, 4095(%r7)
+
+#CHECK: cgibe %r0, 0, 0 # encoding: [0xec,0x08,0x00,0x00,0x00,0xfc]
+#CHECK: cgibe %r0, -128, 0 # encoding: [0xec,0x08,0x00,0x00,0x80,0xfc]
+#CHECK: cgibe %r0, 127, 0 # encoding: [0xec,0x08,0x00,0x00,0x7f,0xfc]
+#CHECK: cgibe %r15, 0, 0 # encoding: [0xec,0xf8,0x00,0x00,0x00,0xfc]
+#CHECK: cgibe %r7, -1, 0 # encoding: [0xec,0x78,0x00,0x00,0xff,0xfc]
+#CHECK: cgibe %r0, 0, 0(%r13) # encoding: [0xec,0x08,0xd0,0x00,0x00,0xfc]
+#CHECK: cgibe %r0, 0, 4095 # encoding: [0xec,0x08,0x0f,0xff,0x00,0xfc]
+#CHECK: cgibe %r0, 0, 4095(%r7) # encoding: [0xec,0x08,0x7f,0xff,0x00,0xfc]
+ cgibe %r0, 0, 0
+ cgibe %r0, -128, 0
+ cgibe %r0, 127, 0
+ cgibe %r15, 0, 0
+ cgibe %r7, -1, 0
+ cgibe %r0, 0, 0(%r13)
+ cgibe %r0, 0, 4095
+ cgibe %r0, 0, 4095(%r7)
+
+#CHECK: cgib %r1, 2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfc]
+#CHECK: cgibh %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfc]
+#CHECK: cgibnle %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfc]
+ cgib %r1, 2, 2, 3(%r4)
+ cgibh %r1, 2, 3(%r4)
+ cgibnle %r1, 2, 3(%r4)
+
+#CHECK: cgib %r1, 2, 4, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfc]
+#CHECK: cgibl %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfc]
+#CHECK: cgibnhe %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfc]
+ cgib %r1, 2, 4, 3(%r4)
+ cgibl %r1, 2, 3(%r4)
+ cgibnhe %r1, 2, 3(%r4)
+
+#CHECK: cgib %r1, 2, 6, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfc]
+#CHECK: cgiblh %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfc]
+#CHECK: cgibne %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfc]
+ cgib %r1, 2, 6, 3(%r4)
+ cgiblh %r1, 2, 3(%r4)
+ cgibne %r1, 2, 3(%r4)
+
+#CHECK: cgib %r1, 2, 8, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfc]
+#CHECK: cgibe %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfc]
+#CHECK: cgibnlh %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfc]
+ cgib %r1, 2, 8, 3(%r4)
+ cgibe %r1, 2, 3(%r4)
+ cgibnlh %r1, 2, 3(%r4)
+
+#CHECK: cgib %r1, 2, 10, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfc]
+#CHECK: cgibhe %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfc]
+#CHECK: cgibnl %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfc]
+ cgib %r1, 2, 10, 3(%r4)
+ cgibhe %r1, 2, 3(%r4)
+ cgibnl %r1, 2, 3(%r4)
+
+#CHECK: cgib %r1, 2, 12, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfc]
+#CHECK: cgible %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfc]
+#CHECK: cgibnh %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfc]
+ cgib %r1, 2, 12, 3(%r4)
+ cgible %r1, 2, 3(%r4)
+ cgibnh %r1, 2, 3(%r4)
+
#CHECK: cgij %r0, 0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x7c]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: cgij %r0, -128, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x80,0x7c]
@@ -1880,6 +1960,82 @@
cgr %r15,%r0
cgr %r7,%r8
+#CHECK: cgrb %r0, %r0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xe4]
+#CHECK: cgrb %r0, %r15, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xe4]
+#CHECK: cgrb %r15, %r0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xe4]
+#CHECK: cgrb %r7, %r2, 0, 0 # encoding: [0xec,0x72,0x00,0x00,0x00,0xe4]
+#CHECK: cgrb %r0, %r0, 1, 0 # encoding: [0xec,0x00,0x00,0x00,0x10,0xe4]
+#CHECK: cgrb %r0, %r0, 15, 0 # encoding: [0xec,0x00,0x00,0x00,0xf0,0xe4]
+#CHECK: cgrb %r0, %r0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xe4]
+#CHECK: cgrb %r0, %r0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xe4]
+#CHECK: cgrb %r0, %r0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xe4]
+ cgrb %r0, %r0, 0, 0
+ cgrb %r0, %r15, 0, 0
+ cgrb %r15, %r0, 0, 0
+ cgrb %r7, %r2, 0, 0
+ cgrb %r0, %r0, 1, 0
+ cgrb %r0, %r0, 15, 0
+ cgrb %r0, %r0, 0, 0(%r13)
+ cgrb %r0, %r0, 0, 4095
+ cgrb %r0, %r0, 0, 4095(%r7)
+
+#CHECK: cgrbe %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xe4]
+#CHECK: cgrbe %r0, %r15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x80,0xe4]
+#CHECK: cgrbe %r15, %r0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x80,0xe4]
+#CHECK: cgrbe %r7, %r2, 0 # encoding: [0xec,0x72,0x00,0x00,0x80,0xe4]
+#CHECK: cgrbe %r0, %r0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x80,0xe4]
+#CHECK: cgrbe %r0, %r0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x80,0xe4]
+#CHECK: cgrbe %r0, %r0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x80,0xe4]
+ cgrbe %r0, %r0, 0
+ cgrbe %r0, %r15, 0
+ cgrbe %r15, %r0, 0
+ cgrbe %r7, %r2, 0
+ cgrbe %r0, %r0, 0(%r13)
+ cgrbe %r0, %r0, 4095
+ cgrbe %r0, %r0, 4095(%r7)
+
+#CHECK: cgrb %r1, %r2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe4]
+#CHECK: cgrbh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe4]
+#CHECK: cgrbnle %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe4]
+ cgrb %r1, %r2, 2, 3(%r4)
+ cgrbh %r1, %r2, 3(%r4)
+ cgrbnle %r1, %r2, 3(%r4)
+
+#CHECK: cgrb %r1, %r2, 4, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe4]
+#CHECK: cgrbl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe4]
+#CHECK: cgrbnhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe4]
+ cgrb %r1, %r2, 4, 3(%r4)
+ cgrbl %r1, %r2, 3(%r4)
+ cgrbnhe %r1, %r2, 3(%r4)
+
+#CHECK: cgrb %r1, %r2, 6, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe4]
+#CHECK: cgrblh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe4]
+#CHECK: cgrbne %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe4]
+ cgrb %r1, %r2, 6, 3(%r4)
+ cgrblh %r1, %r2, 3(%r4)
+ cgrbne %r1, %r2, 3(%r4)
+
+#CHECK: cgrb %r1, %r2, 8, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe4]
+#CHECK: cgrbe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe4]
+#CHECK: cgrbnlh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe4]
+ cgrb %r1, %r2, 8, 3(%r4)
+ cgrbe %r1, %r2, 3(%r4)
+ cgrbnlh %r1, %r2, 3(%r4)
+
+#CHECK: cgrb %r1, %r2, 10, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe4]
+#CHECK: cgrbhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe4]
+#CHECK: cgrbnl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe4]
+ cgrb %r1, %r2, 10, 3(%r4)
+ cgrbhe %r1, %r2, 3(%r4)
+ cgrbnl %r1, %r2, 3(%r4)
+
+#CHECK: cgrb %r1, %r2, 12, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe4]
+#CHECK: cgrble %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe4]
+#CHECK: cgrbnh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe4]
+ cgrb %r1, %r2, 12, 3(%r4)
+ cgrble %r1, %r2, 3(%r4)
+ cgrbnh %r1, %r2, 3(%r4)
+
#CHECK: cgrj %r0, %r0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x64]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: cgrj %r0, %r15, 0, .[[LAB:L.*]] # encoding: [0xec,0x0f,A,A,0x00,0x64]
@@ -2296,6 +2452,86 @@
chy %r0, 524287(%r15,%r1)
chy %r15, 0
+#CHECK: cib %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xfe]
+#CHECK: cib %r0, -128, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xfe]
+#CHECK: cib %r0, 127, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x7f,0xfe]
+#CHECK: cib %r15, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xfe]
+#CHECK: cib %r7, -1, 0, 0 # encoding: [0xec,0x70,0x00,0x00,0xff,0xfe]
+#CHECK: cib %r0, 0, 1, 0 # encoding: [0xec,0x01,0x00,0x00,0x00,0xfe]
+#CHECK: cib %r0, 0, 15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xfe]
+#CHECK: cib %r0, 0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xfe]
+#CHECK: cib %r0, 0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xfe]
+#CHECK: cib %r0, 0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xfe]
+ cib %r0, 0, 0, 0
+ cib %r0, -128, 0, 0
+ cib %r0, 127, 0, 0
+ cib %r15, 0, 0, 0
+ cib %r7, -1, 0, 0
+ cib %r0, 0, 1, 0
+ cib %r0, 0, 15, 0
+ cib %r0, 0, 0, 0(%r13)
+ cib %r0, 0, 0, 4095
+ cib %r0, 0, 0, 4095(%r7)
+
+#CHECK: cibe %r0, 0, 0 # encoding: [0xec,0x08,0x00,0x00,0x00,0xfe]
+#CHECK: cibe %r0, -128, 0 # encoding: [0xec,0x08,0x00,0x00,0x80,0xfe]
+#CHECK: cibe %r0, 127, 0 # encoding: [0xec,0x08,0x00,0x00,0x7f,0xfe]
+#CHECK: cibe %r15, 0, 0 # encoding: [0xec,0xf8,0x00,0x00,0x00,0xfe]
+#CHECK: cibe %r7, -1, 0 # encoding: [0xec,0x78,0x00,0x00,0xff,0xfe]
+#CHECK: cibe %r0, 0, 0(%r13) # encoding: [0xec,0x08,0xd0,0x00,0x00,0xfe]
+#CHECK: cibe %r0, 0, 4095 # encoding: [0xec,0x08,0x0f,0xff,0x00,0xfe]
+#CHECK: cibe %r0, 0, 4095(%r7) # encoding: [0xec,0x08,0x7f,0xff,0x00,0xfe]
+ cibe %r0, 0, 0
+ cibe %r0, -128, 0
+ cibe %r0, 127, 0
+ cibe %r15, 0, 0
+ cibe %r7, -1, 0
+ cibe %r0, 0, 0(%r13)
+ cibe %r0, 0, 4095
+ cibe %r0, 0, 4095(%r7)
+
+#CHECK: cib %r1, 2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfe]
+#CHECK: cibh %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfe]
+#CHECK: cibnle %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfe]
+ cib %r1, 2, 2, 3(%r4)
+ cibh %r1, 2, 3(%r4)
+ cibnle %r1, 2, 3(%r4)
+
+#CHECK: cib %r1, 2, 4, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfe]
+#CHECK: cibl %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfe]
+#CHECK: cibnhe %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfe]
+ cib %r1, 2, 4, 3(%r4)
+ cibl %r1, 2, 3(%r4)
+ cibnhe %r1, 2, 3(%r4)
+
+#CHECK: cib %r1, 2, 6, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfe]
+#CHECK: ciblh %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfe]
+#CHECK: cibne %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfe]
+ cib %r1, 2, 6, 3(%r4)
+ ciblh %r1, 2, 3(%r4)
+ cibne %r1, 2, 3(%r4)
+
+#CHECK: cib %r1, 2, 8, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfe]
+#CHECK: cibe %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfe]
+#CHECK: cibnlh %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfe]
+ cib %r1, 2, 8, 3(%r4)
+ cibe %r1, 2, 3(%r4)
+ cibnlh %r1, 2, 3(%r4)
+
+#CHECK: cib %r1, 2, 10, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfe]
+#CHECK: cibhe %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfe]
+#CHECK: cibnl %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfe]
+ cib %r1, 2, 10, 3(%r4)
+ cibhe %r1, 2, 3(%r4)
+ cibnl %r1, 2, 3(%r4)
+
+#CHECK: cib %r1, 2, 12, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfe]
+#CHECK: cible %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfe]
+#CHECK: cibnh %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfe]
+ cib %r1, 2, 12, 3(%r4)
+ cible %r1, 2, 3(%r4)
+ cibnh %r1, 2, 3(%r4)
+
#CHECK: cij %r0, 0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x7e]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: cij %r0, -128, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x80,0x7e]
@@ -2747,6 +2983,86 @@
clghsi 4095(%r1), 42
clghsi 4095(%r15), 42
+#CHECK: clgib %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xfd]
+#CHECK: clgib %r0, 128, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xfd]
+#CHECK: clgib %r0, 127, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x7f,0xfd]
+#CHECK: clgib %r15, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xfd]
+#CHECK: clgib %r7, 255, 0, 0 # encoding: [0xec,0x70,0x00,0x00,0xff,0xfd]
+#CHECK: clgib %r0, 0, 1, 0 # encoding: [0xec,0x01,0x00,0x00,0x00,0xfd]
+#CHECK: clgib %r0, 0, 15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xfd]
+#CHECK: clgib %r0, 0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xfd]
+#CHECK: clgib %r0, 0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xfd]
+#CHECK: clgib %r0, 0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xfd]
+ clgib %r0, 0, 0, 0
+ clgib %r0, 128, 0, 0
+ clgib %r0, 127, 0, 0
+ clgib %r15, 0, 0, 0
+ clgib %r7, 255, 0, 0
+ clgib %r0, 0, 1, 0
+ clgib %r0, 0, 15, 0
+ clgib %r0, 0, 0, 0(%r13)
+ clgib %r0, 0, 0, 4095
+ clgib %r0, 0, 0, 4095(%r7)
+
+#CHECK: clgibe %r0, 0, 0 # encoding: [0xec,0x08,0x00,0x00,0x00,0xfd]
+#CHECK: clgibe %r0, 128, 0 # encoding: [0xec,0x08,0x00,0x00,0x80,0xfd]
+#CHECK: clgibe %r0, 127, 0 # encoding: [0xec,0x08,0x00,0x00,0x7f,0xfd]
+#CHECK: clgibe %r15, 0, 0 # encoding: [0xec,0xf8,0x00,0x00,0x00,0xfd]
+#CHECK: clgibe %r7, 255, 0 # encoding: [0xec,0x78,0x00,0x00,0xff,0xfd]
+#CHECK: clgibe %r0, 0, 0(%r13) # encoding: [0xec,0x08,0xd0,0x00,0x00,0xfd]
+#CHECK: clgibe %r0, 0, 4095 # encoding: [0xec,0x08,0x0f,0xff,0x00,0xfd]
+#CHECK: clgibe %r0, 0, 4095(%r7) # encoding: [0xec,0x08,0x7f,0xff,0x00,0xfd]
+ clgibe %r0, 0, 0
+ clgibe %r0, 128, 0
+ clgibe %r0, 127, 0
+ clgibe %r15, 0, 0
+ clgibe %r7, 255, 0
+ clgibe %r0, 0, 0(%r13)
+ clgibe %r0, 0, 4095
+ clgibe %r0, 0, 4095(%r7)
+
+#CHECK: clgib %r1, 2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfd]
+#CHECK: clgibh %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfd]
+#CHECK: clgibnle %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfd]
+ clgib %r1, 2, 2, 3(%r4)
+ clgibh %r1, 2, 3(%r4)
+ clgibnle %r1, 2, 3(%r4)
+
+#CHECK: clgib %r1, 2, 4, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfd]
+#CHECK: clgibl %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfd]
+#CHECK: clgibnhe %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfd]
+ clgib %r1, 2, 4, 3(%r4)
+ clgibl %r1, 2, 3(%r4)
+ clgibnhe %r1, 2, 3(%r4)
+
+#CHECK: clgib %r1, 2, 6, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfd]
+#CHECK: clgiblh %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfd]
+#CHECK: clgibne %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfd]
+ clgib %r1, 2, 6, 3(%r4)
+ clgiblh %r1, 2, 3(%r4)
+ clgibne %r1, 2, 3(%r4)
+
+#CHECK: clgib %r1, 2, 8, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfd]
+#CHECK: clgibe %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfd]
+#CHECK: clgibnlh %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfd]
+ clgib %r1, 2, 8, 3(%r4)
+ clgibe %r1, 2, 3(%r4)
+ clgibnlh %r1, 2, 3(%r4)
+
+#CHECK: clgib %r1, 2, 10, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfd]
+#CHECK: clgibhe %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfd]
+#CHECK: clgibnl %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfd]
+ clgib %r1, 2, 10, 3(%r4)
+ clgibhe %r1, 2, 3(%r4)
+ clgibnl %r1, 2, 3(%r4)
+
+#CHECK: clgib %r1, 2, 12, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfd]
+#CHECK: clgible %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfd]
+#CHECK: clgibnh %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfd]
+ clgib %r1, 2, 12, 3(%r4)
+ clgible %r1, 2, 3(%r4)
+ clgibnh %r1, 2, 3(%r4)
+
#CHECK: clgij %r0, 0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x7d]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: clgij %r0, 255, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0xff,0x7d]
@@ -2984,6 +3300,82 @@
clgr %r15,%r0
clgr %r7,%r8
+#CHECK: clgrb %r0, %r0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xe5]
+#CHECK: clgrb %r0, %r15, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xe5]
+#CHECK: clgrb %r15, %r0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xe5]
+#CHECK: clgrb %r7, %r2, 0, 0 # encoding: [0xec,0x72,0x00,0x00,0x00,0xe5]
+#CHECK: clgrb %r0, %r0, 1, 0 # encoding: [0xec,0x00,0x00,0x00,0x10,0xe5]
+#CHECK: clgrb %r0, %r0, 15, 0 # encoding: [0xec,0x00,0x00,0x00,0xf0,0xe5]
+#CHECK: clgrb %r0, %r0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xe5]
+#CHECK: clgrb %r0, %r0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xe5]
+#CHECK: clgrb %r0, %r0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xe5]
+ clgrb %r0, %r0, 0, 0
+ clgrb %r0, %r15, 0, 0
+ clgrb %r15, %r0, 0, 0
+ clgrb %r7, %r2, 0, 0
+ clgrb %r0, %r0, 1, 0
+ clgrb %r0, %r0, 15, 0
+ clgrb %r0, %r0, 0, 0(%r13)
+ clgrb %r0, %r0, 0, 4095
+ clgrb %r0, %r0, 0, 4095(%r7)
+
+#CHECK: clgrbe %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xe5]
+#CHECK: clgrbe %r0, %r15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x80,0xe5]
+#CHECK: clgrbe %r15, %r0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x80,0xe5]
+#CHECK: clgrbe %r7, %r2, 0 # encoding: [0xec,0x72,0x00,0x00,0x80,0xe5]
+#CHECK: clgrbe %r0, %r0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x80,0xe5]
+#CHECK: clgrbe %r0, %r0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x80,0xe5]
+#CHECK: clgrbe %r0, %r0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x80,0xe5]
+ clgrbe %r0, %r0, 0
+ clgrbe %r0, %r15, 0
+ clgrbe %r15, %r0, 0
+ clgrbe %r7, %r2, 0
+ clgrbe %r0, %r0, 0(%r13)
+ clgrbe %r0, %r0, 4095
+ clgrbe %r0, %r0, 4095(%r7)
+
+#CHECK: clgrb %r1, %r2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe5]
+#CHECK: clgrbh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe5]
+#CHECK: clgrbnle %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe5]
+ clgrb %r1, %r2, 2, 3(%r4)
+ clgrbh %r1, %r2, 3(%r4)
+ clgrbnle %r1, %r2, 3(%r4)
+
+#CHECK: clgrb %r1, %r2, 4, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe5]
+#CHECK: clgrbl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe5]
+#CHECK: clgrbnhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe5]
+ clgrb %r1, %r2, 4, 3(%r4)
+ clgrbl %r1, %r2, 3(%r4)
+ clgrbnhe %r1, %r2, 3(%r4)
+
+#CHECK: clgrb %r1, %r2, 6, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe5]
+#CHECK: clgrblh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe5]
+#CHECK: clgrbne %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe5]
+ clgrb %r1, %r2, 6, 3(%r4)
+ clgrblh %r1, %r2, 3(%r4)
+ clgrbne %r1, %r2, 3(%r4)
+
+#CHECK: clgrb %r1, %r2, 8, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe5]
+#CHECK: clgrbe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe5]
+#CHECK: clgrbnlh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe5]
+ clgrb %r1, %r2, 8, 3(%r4)
+ clgrbe %r1, %r2, 3(%r4)
+ clgrbnlh %r1, %r2, 3(%r4)
+
+#CHECK: clgrb %r1, %r2, 10, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe5]
+#CHECK: clgrbhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe5]
+#CHECK: clgrbnl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe5]
+ clgrb %r1, %r2, 10, 3(%r4)
+ clgrbhe %r1, %r2, 3(%r4)
+ clgrbnl %r1, %r2, 3(%r4)
+
+#CHECK: clgrb %r1, %r2, 12, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe5]
+#CHECK: clgrble %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe5]
+#CHECK: clgrbnh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe5]
+ clgrb %r1, %r2, 12, 3(%r4)
+ clgrble %r1, %r2, 3(%r4)
+ clgrbnh %r1, %r2, 3(%r4)
+
#CHECK: clgrj %r0, %r0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x65]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: clgrj %r0, %r15, 0, .[[LAB:L.*]] # encoding: [0xec,0x0f,A,A,0x00,0x65]
@@ -3320,6 +3712,86 @@
cli 4095(%r1), 42
cli 4095(%r15), 42
+#CHECK: clib %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xff]
+#CHECK: clib %r0, 128, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xff]
+#CHECK: clib %r0, 127, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x7f,0xff]
+#CHECK: clib %r15, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xff]
+#CHECK: clib %r7, 255, 0, 0 # encoding: [0xec,0x70,0x00,0x00,0xff,0xff]
+#CHECK: clib %r0, 0, 1, 0 # encoding: [0xec,0x01,0x00,0x00,0x00,0xff]
+#CHECK: clib %r0, 0, 15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xff]
+#CHECK: clib %r0, 0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xff]
+#CHECK: clib %r0, 0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xff]
+#CHECK: clib %r0, 0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xff]
+ clib %r0, 0, 0, 0
+ clib %r0, 128, 0, 0
+ clib %r0, 127, 0, 0
+ clib %r15, 0, 0, 0
+ clib %r7, 255, 0, 0
+ clib %r0, 0, 1, 0
+ clib %r0, 0, 15, 0
+ clib %r0, 0, 0, 0(%r13)
+ clib %r0, 0, 0, 4095
+ clib %r0, 0, 0, 4095(%r7)
+
+#CHECK: clibe %r0, 0, 0 # encoding: [0xec,0x08,0x00,0x00,0x00,0xff]
+#CHECK: clibe %r0, 128, 0 # encoding: [0xec,0x08,0x00,0x00,0x80,0xff]
+#CHECK: clibe %r0, 127, 0 # encoding: [0xec,0x08,0x00,0x00,0x7f,0xff]
+#CHECK: clibe %r15, 0, 0 # encoding: [0xec,0xf8,0x00,0x00,0x00,0xff]
+#CHECK: clibe %r7, 255, 0 # encoding: [0xec,0x78,0x00,0x00,0xff,0xff]
+#CHECK: clibe %r0, 0, 0(%r13) # encoding: [0xec,0x08,0xd0,0x00,0x00,0xff]
+#CHECK: clibe %r0, 0, 4095 # encoding: [0xec,0x08,0x0f,0xff,0x00,0xff]
+#CHECK: clibe %r0, 0, 4095(%r7) # encoding: [0xec,0x08,0x7f,0xff,0x00,0xff]
+ clibe %r0, 0, 0
+ clibe %r0, 128, 0
+ clibe %r0, 127, 0
+ clibe %r15, 0, 0
+ clibe %r7, 255, 0
+ clibe %r0, 0, 0(%r13)
+ clibe %r0, 0, 4095
+ clibe %r0, 0, 4095(%r7)
+
+#CHECK: clib %r1, 2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xff]
+#CHECK: clibh %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xff]
+#CHECK: clibnle %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xff]
+ clib %r1, 2, 2, 3(%r4)
+ clibh %r1, 2, 3(%r4)
+ clibnle %r1, 2, 3(%r4)
+
+#CHECK: clib %r1, 2, 4, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xff]
+#CHECK: clibl %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xff]
+#CHECK: clibnhe %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xff]
+ clib %r1, 2, 4, 3(%r4)
+ clibl %r1, 2, 3(%r4)
+ clibnhe %r1, 2, 3(%r4)
+
+#CHECK: clib %r1, 2, 6, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xff]
+#CHECK: cliblh %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xff]
+#CHECK: clibne %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xff]
+ clib %r1, 2, 6, 3(%r4)
+ cliblh %r1, 2, 3(%r4)
+ clibne %r1, 2, 3(%r4)
+
+#CHECK: clib %r1, 2, 8, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xff]
+#CHECK: clibe %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xff]
+#CHECK: clibnlh %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xff]
+ clib %r1, 2, 8, 3(%r4)
+ clibe %r1, 2, 3(%r4)
+ clibnlh %r1, 2, 3(%r4)
+
+#CHECK: clib %r1, 2, 10, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xff]
+#CHECK: clibhe %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xff]
+#CHECK: clibnl %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xff]
+ clib %r1, 2, 10, 3(%r4)
+ clibhe %r1, 2, 3(%r4)
+ clibnl %r1, 2, 3(%r4)
+
+#CHECK: clib %r1, 2, 12, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xff]
+#CHECK: clible %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xff]
+#CHECK: clibnh %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xff]
+ clib %r1, 2, 12, 3(%r4)
+ clible %r1, 2, 3(%r4)
+ clibnh %r1, 2, 3(%r4)
+
#CHECK: clij %r0, 0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x7f]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: clij %r0, 255, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0xff,0x7f]
@@ -3579,6 +4051,82 @@
clr %r15,%r0
clr %r7,%r8
+#CHECK: clrb %r0, %r0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xf7]
+#CHECK: clrb %r0, %r15, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xf7]
+#CHECK: clrb %r15, %r0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xf7]
+#CHECK: clrb %r7, %r2, 0, 0 # encoding: [0xec,0x72,0x00,0x00,0x00,0xf7]
+#CHECK: clrb %r0, %r0, 1, 0 # encoding: [0xec,0x00,0x00,0x00,0x10,0xf7]
+#CHECK: clrb %r0, %r0, 15, 0 # encoding: [0xec,0x00,0x00,0x00,0xf0,0xf7]
+#CHECK: clrb %r0, %r0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xf7]
+#CHECK: clrb %r0, %r0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xf7]
+#CHECK: clrb %r0, %r0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xf7]
+ clrb %r0, %r0, 0, 0
+ clrb %r0, %r15, 0, 0
+ clrb %r15, %r0, 0, 0
+ clrb %r7, %r2, 0, 0
+ clrb %r0, %r0, 1, 0
+ clrb %r0, %r0, 15, 0
+ clrb %r0, %r0, 0, 0(%r13)
+ clrb %r0, %r0, 0, 4095
+ clrb %r0, %r0, 0, 4095(%r7)
+
+#CHECK: clrbe %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xf7]
+#CHECK: clrbe %r0, %r15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x80,0xf7]
+#CHECK: clrbe %r15, %r0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x80,0xf7]
+#CHECK: clrbe %r7, %r2, 0 # encoding: [0xec,0x72,0x00,0x00,0x80,0xf7]
+#CHECK: clrbe %r0, %r0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x80,0xf7]
+#CHECK: clrbe %r0, %r0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x80,0xf7]
+#CHECK: clrbe %r0, %r0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x80,0xf7]
+ clrbe %r0, %r0, 0
+ clrbe %r0, %r15, 0
+ clrbe %r15, %r0, 0
+ clrbe %r7, %r2, 0
+ clrbe %r0, %r0, 0(%r13)
+ clrbe %r0, %r0, 4095
+ clrbe %r0, %r0, 4095(%r7)
+
+#CHECK: clrb %r1, %r2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf7]
+#CHECK: clrbh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf7]
+#CHECK: clrbnle %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf7]
+ clrb %r1, %r2, 2, 3(%r4)
+ clrbh %r1, %r2, 3(%r4)
+ clrbnle %r1, %r2, 3(%r4)
+
+#CHECK: clrb %r1, %r2, 4, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf7]
+#CHECK: clrbl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf7]
+#CHECK: clrbnhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf7]
+ clrb %r1, %r2, 4, 3(%r4)
+ clrbl %r1, %r2, 3(%r4)
+ clrbnhe %r1, %r2, 3(%r4)
+
+#CHECK: clrb %r1, %r2, 6, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf7]
+#CHECK: clrblh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf7]
+#CHECK: clrbne %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf7]
+ clrb %r1, %r2, 6, 3(%r4)
+ clrblh %r1, %r2, 3(%r4)
+ clrbne %r1, %r2, 3(%r4)
+
+#CHECK: clrb %r1, %r2, 8, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf7]
+#CHECK: clrbe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf7]
+#CHECK: clrbnlh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf7]
+ clrb %r1, %r2, 8, 3(%r4)
+ clrbe %r1, %r2, 3(%r4)
+ clrbnlh %r1, %r2, 3(%r4)
+
+#CHECK: clrb %r1, %r2, 10, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf7]
+#CHECK: clrbhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf7]
+#CHECK: clrbnl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf7]
+ clrb %r1, %r2, 10, 3(%r4)
+ clrbhe %r1, %r2, 3(%r4)
+ clrbnl %r1, %r2, 3(%r4)
+
+#CHECK: clrb %r1, %r2, 12, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf7]
+#CHECK: clrble %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf7]
+#CHECK: clrbnh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf7]
+ clrb %r1, %r2, 12, 3(%r4)
+ clrble %r1, %r2, 3(%r4)
+ clrbnh %r1, %r2, 3(%r4)
+
#CHECK: clrj %r0, %r0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x77]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: clrj %r0, %r15, 0, .[[LAB:L.*]] # encoding: [0xec,0x0f,A,A,0x00,0x77]
@@ -3903,6 +4451,82 @@
cr %r15,%r0
cr %r7,%r8
+#CHECK: crb %r0, %r0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xf6]
+#CHECK: crb %r0, %r15, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xf6]
+#CHECK: crb %r15, %r0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xf6]
+#CHECK: crb %r7, %r2, 0, 0 # encoding: [0xec,0x72,0x00,0x00,0x00,0xf6]
+#CHECK: crb %r0, %r0, 1, 0 # encoding: [0xec,0x00,0x00,0x00,0x10,0xf6]
+#CHECK: crb %r0, %r0, 15, 0 # encoding: [0xec,0x00,0x00,0x00,0xf0,0xf6]
+#CHECK: crb %r0, %r0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xf6]
+#CHECK: crb %r0, %r0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xf6]
+#CHECK: crb %r0, %r0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xf6]
+ crb %r0, %r0, 0, 0
+ crb %r0, %r15, 0, 0
+ crb %r15, %r0, 0, 0
+ crb %r7, %r2, 0, 0
+ crb %r0, %r0, 1, 0
+ crb %r0, %r0, 15, 0
+ crb %r0, %r0, 0, 0(%r13)
+ crb %r0, %r0, 0, 4095
+ crb %r0, %r0, 0, 4095(%r7)
+
+#CHECK: crbe %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xf6]
+#CHECK: crbe %r0, %r15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x80,0xf6]
+#CHECK: crbe %r15, %r0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x80,0xf6]
+#CHECK: crbe %r7, %r2, 0 # encoding: [0xec,0x72,0x00,0x00,0x80,0xf6]
+#CHECK: crbe %r0, %r0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x80,0xf6]
+#CHECK: crbe %r0, %r0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x80,0xf6]
+#CHECK: crbe %r0, %r0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x80,0xf6]
+ crbe %r0, %r0, 0
+ crbe %r0, %r15, 0
+ crbe %r15, %r0, 0
+ crbe %r7, %r2, 0
+ crbe %r0, %r0, 0(%r13)
+ crbe %r0, %r0, 4095
+ crbe %r0, %r0, 4095(%r7)
+
+#CHECK: crb %r1, %r2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf6]
+#CHECK: crbh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf6]
+#CHECK: crbnle %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf6]
+ crb %r1, %r2, 2, 3(%r4)
+ crbh %r1, %r2, 3(%r4)
+ crbnle %r1, %r2, 3(%r4)
+
+#CHECK: crb %r1, %r2, 4, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf6]
+#CHECK: crbl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf6]
+#CHECK: crbnhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf6]
+ crb %r1, %r2, 4, 3(%r4)
+ crbl %r1, %r2, 3(%r4)
+ crbnhe %r1, %r2, 3(%r4)
+
+#CHECK: crb %r1, %r2, 6, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf6]
+#CHECK: crblh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf6]
+#CHECK: crbne %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf6]
+ crb %r1, %r2, 6, 3(%r4)
+ crblh %r1, %r2, 3(%r4)
+ crbne %r1, %r2, 3(%r4)
+
+#CHECK: crb %r1, %r2, 8, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf6]
+#CHECK: crbe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf6]
+#CHECK: crbnlh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf6]
+ crb %r1, %r2, 8, 3(%r4)
+ crbe %r1, %r2, 3(%r4)
+ crbnlh %r1, %r2, 3(%r4)
+
+#CHECK: crb %r1, %r2, 10, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf6]
+#CHECK: crbhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf6]
+#CHECK: crbnl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf6]
+ crb %r1, %r2, 10, 3(%r4)
+ crbhe %r1, %r2, 3(%r4)
+ crbnl %r1, %r2, 3(%r4)
+
+#CHECK: crb %r1, %r2, 12, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf6]
+#CHECK: crble %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf6]
+#CHECK: crbnh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf6]
+ crb %r1, %r2, 12, 3(%r4)
+ crble %r1, %r2, 3(%r4)
+ crbnh %r1, %r2, 3(%r4)
+
#CHECK: crj %r0, %r0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x76]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: crj %r0, %r15, 0, .[[LAB:L.*]] # encoding: [0xec,0x0f,A,A,0x00,0x76]
More information about the llvm-commits
mailing list