[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