[llvm] r304203 - [SystemZ] Add decimal floating-point instructions

Ulrich Weigand via llvm-commits llvm-commits at lists.llvm.org
Tue May 30 03:15:17 PDT 2017


Author: uweigand
Date: Tue May 30 05:15:16 2017
New Revision: 304203

URL: http://llvm.org/viewvc/llvm-project?rev=304203&view=rev
Log:
[SystemZ] Add decimal floating-point instructions

This adds assembler / disassembler support for the decimal
floating-point instructions.  Since LLVM does not yet have
support for decimal float types, these cannot be used for
codegen at this point.


Added:
    llvm/trunk/lib/Target/SystemZ/SystemZInstrDFP.td
Modified:
    llvm/trunk/lib/Target/SystemZ/SystemZ.td
    llvm/trunk/lib/Target/SystemZ/SystemZFeatures.td
    llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td
    llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ13.td
    llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ196.td
    llvm/trunk/lib/Target/SystemZ/SystemZScheduleZEC12.td
    llvm/trunk/lib/Target/SystemZ/SystemZSubtarget.cpp
    llvm/trunk/lib/Target/SystemZ/SystemZSubtarget.h
    llvm/trunk/test/MC/Disassembler/SystemZ/insns-z13.txt
    llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt
    llvm/trunk/test/MC/SystemZ/insn-bad-z13.s
    llvm/trunk/test/MC/SystemZ/insn-bad-z196.s
    llvm/trunk/test/MC/SystemZ/insn-bad-zEC12.s
    llvm/trunk/test/MC/SystemZ/insn-bad.s
    llvm/trunk/test/MC/SystemZ/insn-good-z13.s
    llvm/trunk/test/MC/SystemZ/insn-good-z196.s
    llvm/trunk/test/MC/SystemZ/insn-good-zEC12.s
    llvm/trunk/test/MC/SystemZ/insn-good.s

Modified: llvm/trunk/lib/Target/SystemZ/SystemZ.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZ.td?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZ.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZ.td Tue May 30 05:15:16 2017
@@ -55,6 +55,7 @@ include "SystemZInstrInfo.td"
 include "SystemZInstrVector.td"
 include "SystemZInstrFP.td"
 include "SystemZInstrHFP.td"
+include "SystemZInstrDFP.td"
 
 def SystemZInstrInfo : InstrInfo {}
 

Modified: llvm/trunk/lib/Target/SystemZ/SystemZFeatures.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZFeatures.td?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZFeatures.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZFeatures.td Tue May 30 05:15:16 2017
@@ -115,12 +115,18 @@ def FeatureTransactionalExecution : Syst
   "Assume that the transactional-execution facility is installed"
 >;
 
+def FeatureDFPZonedConversion : SystemZFeature<
+  "dfp-zoned-conversion", "DFPZonedConversion",
+  "Assume that the DFP zoned-conversion facility is installed"
+>;
+
 def Arch10NewFeatures : SystemZFeatureList<[
     FeatureExecutionHint,
     FeatureLoadAndTrap,
     FeatureMiscellaneousExtensions,
     FeatureProcessorAssist,
-    FeatureTransactionalExecution
+    FeatureTransactionalExecution,
+    FeatureDFPZonedConversion
 ]>;
 
 //===----------------------------------------------------------------------===//
@@ -144,6 +150,11 @@ def FeatureMessageSecurityAssist5 : Syst
   "Assume that the message-security-assist extension facility 5 is installed"
 >;
 
+def FeatureDFPPackedConversion : SystemZFeature<
+  "dfp-packed-conversion", "DFPPackedConversion",
+  "Assume that the DFP packed-conversion facility is installed"
+>;
+
 def FeatureVector : SystemZFeature<
   "vector", "Vector",
   "Assume that the vectory facility is installed"
@@ -154,6 +165,7 @@ def Arch11NewFeatures : SystemZFeatureLi
     FeatureLoadAndZeroRightmostByte,
     FeatureLoadStoreOnCond2,
     FeatureMessageSecurityAssist5,
+    FeatureDFPPackedConversion,
     FeatureVector
 ]>;
 

Added: llvm/trunk/lib/Target/SystemZ/SystemZInstrDFP.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZInstrDFP.td?rev=304203&view=auto
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZInstrDFP.td (added)
+++ llvm/trunk/lib/Target/SystemZ/SystemZInstrDFP.td Tue May 30 05:15:16 2017
@@ -0,0 +1,231 @@
+//==- SystemZInstrDFP.td - Floating-point SystemZ instructions -*- tblgen-*-==//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// The instructions in this file implement SystemZ decimal floating-point
+// arithmetic.  These instructions are inot currently used for code generation,
+// are provided for use with the assembler and disassembler only.  If LLVM
+// ever supports decimal floating-point types (_Decimal64 etc.), they can
+// also be used for code generation for those types.
+//
+//===----------------------------------------------------------------------===//
+
+//===----------------------------------------------------------------------===//
+// Move instructions
+//===----------------------------------------------------------------------===//
+
+// Load and test.
+let Defs = [CC] in {
+  def LTDTR : UnaryRRE<"ltdtr", 0xB3D6, null_frag, FP64,  FP64>;
+  def LTXTR : UnaryRRE<"ltxtr", 0xB3DE, null_frag, FP128, FP128>;
+}
+
+
+//===----------------------------------------------------------------------===//
+// Conversion instructions
+//===----------------------------------------------------------------------===//
+
+// Convert floating-point values to narrower representations.  The destination
+// of LDXTR is a 128-bit value, but only the first register of the pair is used.
+def LEDTR : TernaryRRFe<"ledtr", 0xB3D5, FP32,  FP64>;
+def LDXTR : TernaryRRFe<"ldxtr", 0xB3DD, FP128, FP128>;
+
+// Extend floating-point values to wider representations.
+def LDETR : BinaryRRFd<"ldetr", 0xB3D4, FP64,  FP32>;
+def LXDTR : BinaryRRFd<"lxdtr", 0xB3DC, FP128, FP64>;
+
+// Convert a signed integer value to a floating-point one.
+def CDGTR : UnaryRRE<"cdgtr", 0xB3F1, null_frag, FP64,  GR64>;
+def CXGTR : UnaryRRE<"cxgtr", 0xB3F9, null_frag, FP128, GR64>;
+let Predicates = [FeatureFPExtension] in {
+  def CDGTRA : TernaryRRFe<"cdgtra", 0xB3F1, FP64,  GR64>;
+  def CXGTRA : TernaryRRFe<"cxgtra", 0xB3F9, FP128, GR64>;
+  def CDFTR : TernaryRRFe<"cdftr", 0xB951, FP64,  GR32>;
+  def CXFTR : TernaryRRFe<"cxftr", 0xB959, FP128, GR32>;
+}
+
+// Convert an unsigned integer value to a floating-point one.
+let Predicates = [FeatureFPExtension] in {
+  def CDLGTR : TernaryRRFe<"cdlgtr", 0xB952, FP64,  GR64>;
+  def CXLGTR : TernaryRRFe<"cxlgtr", 0xB95A, FP128, GR64>;
+  def CDLFTR : TernaryRRFe<"cdlftr", 0xB953, FP64,  GR32>;
+  def CXLFTR : TernaryRRFe<"cxlftr", 0xB95B, FP128, GR32>;
+}
+
+// Convert a floating-point value to a signed integer value.
+let Defs = [CC] in {
+  def CGDTR : BinaryRRFe<"cgdtr", 0xB3E1, GR64, FP64>;
+  def CGXTR : BinaryRRFe<"cgxtr", 0xB3E9, GR64, FP128>;
+  let Predicates = [FeatureFPExtension] in {
+    def CGDTRA : TernaryRRFe<"cgdtra", 0xB3E1, GR64, FP64>;
+    def CGXTRA : TernaryRRFe<"cgxtra", 0xB3E9, GR64, FP128>;
+    def CFDTR : TernaryRRFe<"cfdtr", 0xB941, GR32, FP64>;
+    def CFXTR : TernaryRRFe<"cfxtr", 0xB949, GR32, FP128>;
+  }
+}
+
+// Convert a floating-point value to an unsigned integer value.
+let Defs = [CC] in {
+  let Predicates = [FeatureFPExtension] in {
+    def CLGDTR : TernaryRRFe<"clgdtr", 0xB942, GR64, FP64>;
+    def CLGXTR : TernaryRRFe<"clgxtr", 0xB94A, GR64, FP128>;
+    def CLFDTR : TernaryRRFe<"clfdtr", 0xB943, GR32, FP64>;
+    def CLFXTR : TernaryRRFe<"clfxtr", 0xB94B, GR32, FP128>;
+  }
+}
+
+// Convert a packed value to a floating-point one.
+def CDSTR : UnaryRRE<"cdstr", 0xB3F3, null_frag, FP64,  GR64>;
+def CXSTR : UnaryRRE<"cxstr", 0xB3FB, null_frag, FP128, GR128>;
+def CDUTR : UnaryRRE<"cdutr", 0xB3F2, null_frag, FP64,  GR64>;
+def CXUTR : UnaryRRE<"cxutr", 0xB3FA, null_frag, FP128, GR128>;
+
+// Convert a floating-point value to a packed value.
+def CSDTR : BinaryRRFd<"csdtr", 0xB3E3, GR64,  FP64>;
+def CSXTR : BinaryRRFd<"csxtr", 0xB3EB, GR128, FP128>;
+def CUDTR : UnaryRRE<"cudtr", 0xB3E2, null_frag, GR64,  FP64>;
+def CUXTR : UnaryRRE<"cuxtr", 0xB3EA, null_frag, GR128, FP128>;
+
+// Convert from/to memory values in the zoned format.
+let Predicates = [FeatureDFPZonedConversion] in {
+  def CDZT : BinaryRSL<"cdzt", 0xEDAA, FP64>;
+  def CXZT : BinaryRSL<"cxzt", 0xEDAB, FP128>;
+  def CZDT : StoreBinaryRSL<"czdt", 0xEDA8, FP64>;
+  def CZXT : StoreBinaryRSL<"czxt", 0xEDA9, FP128>;
+}
+
+// Convert from/to memory values in the packed format.
+let Predicates = [FeatureDFPPackedConversion] in {
+  def CDPT : BinaryRSL<"cdpt", 0xEDAE, FP64>;
+  def CXPT : BinaryRSL<"cxpt", 0xEDAF, FP128>;
+  def CPDT : StoreBinaryRSL<"cpdt", 0xEDAC, FP64>;
+  def CPXT : StoreBinaryRSL<"cpxt", 0xEDAD, FP128>;
+}
+
+// Perform floating-point operation.
+let Defs = [CC, R1L, F0Q], Uses = [R0L, F4Q] in
+  def PFPO : SideEffectInherentE<"pfpo", 0x010A>;
+
+
+//===----------------------------------------------------------------------===//
+// Unary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Round to an integer, with the second operand (M3) specifying the rounding
+// mode.  M4 can be set to 4 to suppress detection of inexact conditions.
+def FIDTR : TernaryRRFe<"fidtr", 0xB3D7, FP64,  FP64>;
+def FIXTR : TernaryRRFe<"fixtr", 0xB3DF, FP128, FP128>;
+
+// Extract biased exponent.
+def EEDTR : UnaryRRE<"eedtr", 0xB3E5, null_frag, FP64,  FP64>;
+def EEXTR : UnaryRRE<"eextr", 0xB3ED, null_frag, FP128, FP128>;
+
+// Extract significance.
+def ESDTR : UnaryRRE<"esdtr", 0xB3E7, null_frag, FP64,  FP64>;
+def ESXTR : UnaryRRE<"esxtr", 0xB3EF, null_frag, FP128, FP128>;
+
+
+//===----------------------------------------------------------------------===//
+// Binary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Addition.
+let Defs = [CC] in {
+  let isCommutable = 1 in {
+    def ADTR : BinaryRRFa<"adtr", 0xB3D2, null_frag, FP64,  FP64,  FP64>;
+    def AXTR : BinaryRRFa<"axtr", 0xB3DA, null_frag, FP128, FP128, FP128>;
+  }
+  let Predicates = [FeatureFPExtension] in {
+    def ADTRA : TernaryRRFa<"adtra", 0xB3D2, FP64,  FP64,  FP64>;
+    def AXTRA : TernaryRRFa<"axtra", 0xB3DA, FP128, FP128, FP128>;
+  }
+}
+
+// Subtraction.
+let Defs = [CC] in {
+  def SDTR : BinaryRRFa<"sdtr", 0xB3D3, null_frag, FP64,  FP64,  FP64>;
+  def SXTR : BinaryRRFa<"sxtr", 0xB3DB, null_frag, FP128, FP128, FP128>;
+  let Predicates = [FeatureFPExtension] in {
+    def SDTRA : TernaryRRFa<"sdtra", 0xB3D3, FP64,  FP64,  FP64>;
+    def SXTRA : TernaryRRFa<"sxtra", 0xB3DB, FP128, FP128, FP128>;
+  }
+}
+
+// Multiplication.
+let isCommutable = 1 in {
+  def MDTR : BinaryRRFa<"mdtr", 0xB3D0, null_frag, FP64,  FP64,  FP64>;
+  def MXTR : BinaryRRFa<"mxtr", 0xB3D8, null_frag, FP128, FP128, FP128>;
+}
+let Predicates = [FeatureFPExtension] in {
+  def MDTRA : TernaryRRFa<"mdtra", 0xB3D0, FP64,  FP64,  FP64>;
+  def MXTRA : TernaryRRFa<"mxtra", 0xB3D8, FP128, FP128, FP128>;
+}
+
+// Division.
+def DDTR : BinaryRRFa<"ddtr", 0xB3D1, null_frag, FP64,  FP64,  FP64>;
+def DXTR : BinaryRRFa<"dxtr", 0xB3D9, null_frag, FP128, FP128, FP128>;
+let Predicates = [FeatureFPExtension] in {
+  def DDTRA : TernaryRRFa<"ddtra", 0xB3D1, FP64,  FP64,  FP64>;
+  def DXTRA : TernaryRRFa<"dxtra", 0xB3D9, FP128, FP128, FP128>;
+}
+
+// Quantize.
+def QADTR : TernaryRRFb<"qadtr", 0xB3F5, FP64,  FP64,  FP64>;
+def QAXTR : TernaryRRFb<"qaxtr", 0xB3FD, FP128, FP128, FP128>;
+
+// Reround.
+def RRDTR : TernaryRRFb<"rrdtr", 0xB3F7, FP64,  FP64,  FP64>;
+def RRXTR : TernaryRRFb<"rrxtr", 0xB3FF, FP128, FP128, FP128>;
+
+// Shift significand left/right.
+def SLDT : BinaryRXF<"sldt", 0xED40, null_frag, FP64,  FP64,  null_frag, 0>;
+def SLXT : BinaryRXF<"slxt", 0xED48, null_frag, FP128, FP128, null_frag, 0>;
+def SRDT : BinaryRXF<"srdt", 0xED41, null_frag, FP64,  FP64,  null_frag, 0>;
+def SRXT : BinaryRXF<"srxt", 0xED49, null_frag, FP128, FP128, null_frag, 0>;
+
+// Insert biased exponent.
+def IEDTR : BinaryRRFb<"iedtr", 0xB3F6, null_frag, FP64,  FP64,   FP64>;
+def IEXTR : BinaryRRFb<"iextr", 0xB3FE, null_frag, FP128, FP128, FP128>;
+
+
+//===----------------------------------------------------------------------===//
+// Comparisons
+//===----------------------------------------------------------------------===//
+
+// Compare.
+let Defs = [CC] in {
+  def CDTR : CompareRRE<"cdtr", 0xB3E4, null_frag, FP64,  FP64>;
+  def CXTR : CompareRRE<"cxtr", 0xB3EC, null_frag, FP128, FP128>;
+}
+
+// Compare and signal.
+let Defs = [CC] in {
+  def KDTR : CompareRRE<"kdtr", 0xB3E0, null_frag, FP64,  FP64>;
+  def KXTR : CompareRRE<"kxtr", 0xB3E8, null_frag, FP128, FP128>;
+}
+
+// Compare biased exponent.
+let Defs = [CC] in {
+  def CEDTR : CompareRRE<"cedtr", 0xB3F4, null_frag, FP64,  FP64>;
+  def CEXTR : CompareRRE<"cextr", 0xB3FC, null_frag, FP128, FP128>;
+}
+
+// Test Data Class.
+let Defs = [CC] in {
+  def TDCET : TestRXE<"tdcet", 0xED50, null_frag, FP32>;
+  def TDCDT : TestRXE<"tdcdt", 0xED54, null_frag, FP64>;
+  def TDCXT : TestRXE<"tdcxt", 0xED58, null_frag, FP128>;
+}
+
+// Test Data Group.
+let Defs = [CC] in {
+  def TDGET : TestRXE<"tdget", 0xED51, null_frag, FP32>;
+  def TDGDT : TestRXE<"tdgdt", 0xED55, null_frag, FP64>;
+  def TDGXT : TestRXE<"tdgxt", 0xED59, null_frag, FP128>;
+}
+

Modified: llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td Tue May 30 05:15:16 2017
@@ -527,6 +527,22 @@ class InstRRFc<bits<16> op, dag outs, da
   let Inst{3-0}   = R2;
 }
 
+class InstRRFd<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
+  : InstSystemZ<4, outs, ins, asmstr, pattern> {
+  field bits<32> Inst;
+  field bits<32> SoftFail = 0;
+
+  bits<4> R1;
+  bits<4> R2;
+  bits<4> M4;
+
+  let Inst{31-16} = op;
+  let Inst{15-12} = 0;
+  let Inst{11-8}  = M4;
+  let Inst{7-4}   = R1;
+  let Inst{3-0}   = R2;
+}
+
 class InstRRFe<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<4, outs, ins, asmstr, pattern> {
   field bits<32> Inst;
@@ -725,6 +741,22 @@ class InstRSLa<bits<16> op, dag outs, da
   let Inst{7-0}   = op{7-0};
 }
 
+class InstRSLb<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<24> BDL2;
+  bits<4> M3;
+
+  let Inst{47-40} = op{15-8};
+  let Inst{39-16} = BDL2;
+  let Inst{15-12} = R1;
+  let Inst{11-8}  = M3;
+  let Inst{7-0}   = op{7-0};
+}
+
 class InstRSYa<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<6, outs, ins, asmstr, pattern> {
   field bits<48> Inst;
@@ -2817,6 +2849,11 @@ multiclass BinaryMemRRFcOpt<string mnemo
   def Opt : UnaryMemRRFc<mnemonic, opcode, cls1, cls2>;
 }
 
+class BinaryRRFd<string mnemonic, bits<16> opcode, RegisterOperand cls1,
+                RegisterOperand cls2>
+  : InstRRFd<opcode, (outs cls1:$R1), (ins cls2:$R2, imm32zx4:$M4),
+             mnemonic#"\t$R1, $R2, $M4", []>;
+
 class BinaryRRFe<string mnemonic, bits<16> opcode, RegisterOperand cls1,
                 RegisterOperand cls2>
   : InstRRFe<opcode, (outs cls1:$R1), (ins imm32zx4:$M3, cls2:$R2),
@@ -2967,6 +3004,13 @@ multiclass BinaryRSAndK<string mnemonic,
   }
 }
 
+class BinaryRSL<string mnemonic, bits<16> opcode, RegisterOperand cls>
+  : InstRSLb<opcode, (outs cls:$R1),
+             (ins bdladdr12onlylen8:$BDL2, imm32zx4:$M3),
+             mnemonic#"\t$R1, $BDL2, $M3", []> {
+  let mayLoad = 1;
+}
+
 class BinaryRX<string mnemonic, bits<8> opcode, SDPatternOperator operator,
                RegisterOperand cls, SDPatternOperator load, bits<5> bytes,
                AddressingMode mode = bdxaddr12only>
@@ -3315,6 +3359,13 @@ multiclass StoreBinaryRSPair<string mnem
   }
 }
 
+class StoreBinaryRSL<string mnemonic, bits<16> opcode, RegisterOperand cls>
+  : InstRSLb<opcode, (outs),
+             (ins cls:$R1, bdladdr12onlylen8:$BDL2, imm32zx4:$M3),
+             mnemonic#"\t$R1, $BDL2, $M3", []> {
+  let mayStore = 1;
+}
+
 class StoreBinaryVRV<string mnemonic, bits<16> opcode, bits<5> bytes,
                      Immediate index>
   : InstVRV<opcode, (outs), (ins VR128:$V1, bdvaddr12only:$VBD2, index:$M3),
@@ -3602,6 +3653,12 @@ class SideEffectTernarySSF<string mnemon
             (ins bdaddr12only:$BD1, bdaddr12only:$BD2, cls:$R3),
             mnemonic#"\t$BD1, $BD2, $R3", []>;
 
+class TernaryRRFa<string mnemonic, bits<16> opcode,
+                 RegisterOperand cls1, RegisterOperand cls2,
+                 RegisterOperand cls3>
+  : InstRRFa<opcode, (outs cls1:$R1), (ins cls2:$R2, cls3:$R3, imm32zx4:$M4),
+             mnemonic#"\t$R1, $R2, $R3, $M4", []>;
+
 class TernaryRRFb<string mnemonic, bits<16> opcode,
                   RegisterOperand cls1, RegisterOperand cls2,
                   RegisterOperand cls3>

Modified: llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ13.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ13.td?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ13.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ13.td Tue May 30 05:15:16 2017
@@ -1016,6 +1016,130 @@ def : InstRW<[VecXsPm, Lat4], (instregex
 def : InstRW<[VecDF, VecDF, Lat20, GroupAlone], (instregex "CXR$")>;
 
 
+// ------------------------ Decimal floating point -------------------------- //
+
+//===----------------------------------------------------------------------===//
+// DFP: Move instructions
+//===----------------------------------------------------------------------===//
+
+// Load and Test
+def : InstRW<[VecDF], (instregex "LTDTR$")>;
+def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "LTXTR$")>;
+
+//===----------------------------------------------------------------------===//
+// DFP: Conversion instructions
+//===----------------------------------------------------------------------===//
+
+// Load rounded
+def : InstRW<[VecDF, Lat15], (instregex "LEDTR$")>;
+def : InstRW<[VecDF, VecDF, Lat20], (instregex "LDXTR$")>;
+
+// Load lengthened
+def : InstRW<[VecDF], (instregex "LDETR$")>;
+def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "LXDTR$")>;
+
+// Convert from fixed / logical
+def : InstRW<[FXb, VecDF, Lat30, BeginGroup], (instregex "CD(F|G)TR(A)?$")>;
+def : InstRW<[FXb, VecDF2, VecDF2, Lat30, GroupAlone], (instregex "CX(F|G)TR(A)?$")>;
+def : InstRW<[FXb, VecDF, Lat30, BeginGroup], (instregex "CDL(F|G)TR$")>;
+def : InstRW<[FXb, VecDF2, VecDF2, Lat30, GroupAlone], (instregex "CXL(F|G)TR$")>;
+
+// Convert to fixed / logical
+def : InstRW<[FXb, VecDF, Lat30, BeginGroup], (instregex "C(F|G)DTR(A)?$")>;
+def : InstRW<[FXb, VecDF, VecDF, Lat30, BeginGroup], (instregex "C(F|G)XTR(A)?$")>;
+def : InstRW<[FXb, VecDF, Lat30, BeginGroup], (instregex "CL(F|G)DTR$")>;
+def : InstRW<[FXb, VecDF, VecDF, Lat30, BeginGroup], (instregex "CL(F|G)XTR$")>;
+
+// Convert from / to signed / unsigned packed
+def : InstRW<[FXb, VecDF, Lat9, BeginGroup], (instregex "CD(S|U)TR$")>;
+def : InstRW<[FXb, FXb, VecDF2, VecDF2, Lat15, GroupAlone], (instregex "CX(S|U)TR$")>;
+def : InstRW<[FXb, VecDF, Lat12, BeginGroup], (instregex "C(S|U)DTR$")>;
+def : InstRW<[FXb, FXb, VecDF2, VecDF2, Lat15, BeginGroup], (instregex "C(S|U)XTR$")>;
+
+// Convert from / to zoned
+def : InstRW<[LSU, VecDF, Lat11, BeginGroup], (instregex "CDZT$")>;
+def : InstRW<[LSU, LSU, VecDF2, VecDF2, Lat15, GroupAlone], (instregex "CXZT$")>;
+def : InstRW<[FXb, LSU, VecDF, Lat11, BeginGroup], (instregex "CZDT$")>;
+def : InstRW<[FXb, LSU, VecDF, VecDF, Lat15, GroupAlone], (instregex "CZXT$")>;
+
+// Convert from / to packed
+def : InstRW<[LSU, VecDF, Lat11, BeginGroup], (instregex "CDPT$")>;
+def : InstRW<[LSU, LSU, VecDF2, VecDF2, Lat15, GroupAlone], (instregex "CXPT$")>;
+def : InstRW<[FXb, LSU, VecDF, Lat11, BeginGroup], (instregex "CPDT$")>;
+def : InstRW<[FXb, LSU, VecDF, VecDF, Lat15, GroupAlone], (instregex "CPXT$")>;
+
+// Perform floating-point operation
+def : InstRW<[LSU, Lat30, GroupAlone], (instregex "PFPO$")>;
+
+//===----------------------------------------------------------------------===//
+// DFP: Unary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Load FP integer
+def : InstRW<[VecDF], (instregex "FIDTR$")>;
+def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "FIXTR$")>;
+
+// Extract biased exponent
+def : InstRW<[FXb, VecDF, Lat12, BeginGroup], (instregex "EEDTR$")>;
+def : InstRW<[FXb, VecDF, Lat12, BeginGroup], (instregex "EEXTR$")>;
+
+// Extract significance
+def : InstRW<[FXb, VecDF, Lat12, BeginGroup], (instregex "ESDTR$")>;
+def : InstRW<[FXb, VecDF, VecDF, Lat15, BeginGroup], (instregex "ESXTR$")>;
+
+//===----------------------------------------------------------------------===//
+// DFP: Binary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Addition
+def : InstRW<[VecDF], (instregex "ADTR(A)?$")>;
+def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "AXTR(A)?$")>;
+
+// Subtraction
+def : InstRW<[VecDF], (instregex "SDTR(A)?$")>;
+def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "SXTR(A)?$")>;
+
+// Multiply
+def : InstRW<[VecDF, Lat30], (instregex "MDTR(A)?$")>;
+def : InstRW<[VecDF2, VecDF2, Lat30, GroupAlone], (instregex "MXTR(A)?$")>;
+
+// Division
+def : InstRW<[VecDF, Lat30], (instregex "DDTR(A)?$")>;
+def : InstRW<[VecDF2, VecDF2, Lat30, GroupAlone], (instregex "DXTR(A)?$")>;
+
+// Quantize
+def : InstRW<[VecDF], (instregex "QADTR$")>;
+def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "QAXTR$")>;
+
+// Reround
+def : InstRW<[FXb, VecDF, Lat11], (instregex "RRDTR$")>;
+def : InstRW<[FXb, VecDF2, VecDF2, Lat15, GroupAlone], (instregex "RRXTR$")>;
+
+// Shift significand left/right
+def : InstRW<[LSU, VecDF, Lat11], (instregex "S(L|R)DT$")>;
+def : InstRW<[LSU, VecDF2, VecDF2, Lat15, GroupAlone], (instregex "S(L|R)XT$")>;
+
+// Insert biased exponent
+def : InstRW<[FXb, VecDF, Lat11], (instregex "IEDTR$")>;
+def : InstRW<[FXb, VecDF2, VecDF2, Lat15, GroupAlone], (instregex "IEXTR$")>;
+
+//===----------------------------------------------------------------------===//
+// DFP: Comparisons
+//===----------------------------------------------------------------------===//
+
+// Compare
+def : InstRW<[VecDF], (instregex "(K|C)DTR$")>;
+def : InstRW<[VecDF, VecDF, Lat11, GroupAlone], (instregex "(K|C)XTR$")>;
+
+// Compare biased exponent
+def : InstRW<[VecDF], (instregex "CEDTR$")>;
+def : InstRW<[VecDF], (instregex "CEXTR$")>;
+
+// Test Data Class/Group
+def : InstRW<[LSU, VecDF, Lat11], (instregex "TD(C|G)(E|D)T$")>;
+def : InstRW<[LSU, VecDF2, VecDF2, Lat15, GroupAlone], (instregex "TD(C|G)XT$")>;
+
+
 // --------------------------------- Vector --------------------------------- //
 
 //===----------------------------------------------------------------------===//

Modified: llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ196.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ196.td?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ196.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ196.td Tue May 30 05:15:16 2017
@@ -946,5 +946,117 @@ def : InstRW<[FPU, LSU, Lat12], (instreg
 def : InstRW<[FPU], (instregex "C(E|D)R$")>;
 def : InstRW<[FPU, FPU, Lat15], (instregex "CXR$")>;
 
+
+// ------------------------ Decimal floating point -------------------------- //
+
+//===----------------------------------------------------------------------===//
+// DFP: Move instructions
+//===----------------------------------------------------------------------===//
+
+// Load and Test
+def : InstRW<[DFU, Lat20], (instregex "LTDTR$")>;
+def : InstRW<[DFU2, DFU2, Lat20, GroupAlone], (instregex "LTXTR$")>;
+
+//===----------------------------------------------------------------------===//
+// DFP: Conversion instructions
+//===----------------------------------------------------------------------===//
+
+// Load rounded
+def : InstRW<[DFU, Lat30], (instregex "LEDTR$")>;
+def : InstRW<[DFU, DFU, Lat30], (instregex "LDXTR$")>;
+
+// Load lengthened
+def : InstRW<[DFU, Lat20], (instregex "LDETR$")>;
+def : InstRW<[DFU2, DFU2, Lat20, GroupAlone], (instregex "LXDTR$")>;
+
+// Convert from fixed / logical
+def : InstRW<[FXU, DFU, Lat30, GroupAlone], (instregex "CD(F|G)TR(A)?$")>;
+def : InstRW<[FXU, DFU2, DFU2, Lat30, GroupAlone], (instregex "CX(F|G)TR(A)?$")>;
+def : InstRW<[FXU, DFU, Lat11, GroupAlone], (instregex "CDL(F|G)TR$")>;
+def : InstRW<[FXU, DFU2, DFU2, Lat11, GroupAlone], (instregex "CXL(F|G)TR$")>;
+
+// Convert to fixed / logical
+def : InstRW<[FXU, DFU, Lat30, GroupAlone], (instregex "C(F|G)DTR(A)?$")>;
+def : InstRW<[FXU, DFU, DFU, Lat30, GroupAlone], (instregex "C(F|G)XTR(A)?$")>;
+def : InstRW<[FXU, DFU, Lat30, GroupAlone], (instregex "CL(F|G)DTR$")>;
+def : InstRW<[FXU, DFU, DFU, Lat30, GroupAlone], (instregex "CL(F|G)XTR$")>;
+
+// Convert from / to signed / unsigned packed
+def : InstRW<[FXU, DFU, Lat12, GroupAlone], (instregex "CD(S|U)TR$")>;
+def : InstRW<[FXU, FXU, DFU2, DFU2, Lat20, GroupAlone], (instregex "CX(S|U)TR$")>;
+def : InstRW<[FXU, DFU, Lat12, GroupAlone], (instregex "C(S|U)DTR$")>;
+def : InstRW<[FXU, FXU, DFU2, DFU2, Lat20, GroupAlone], (instregex "C(S|U)XTR$")>;
+
+// Perform floating-point operation
+def : InstRW<[LSU, Lat30, GroupAlone], (instregex "PFPO$")>;
+
+//===----------------------------------------------------------------------===//
+// DFP: Unary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Load FP integer
+def : InstRW<[DFU, Lat20], (instregex "FIDTR$")>;
+def : InstRW<[DFU2, DFU2, Lat20, GroupAlone], (instregex "FIXTR$")>;
+
+// Extract biased exponent
+def : InstRW<[FXU, DFU, Lat15, GroupAlone], (instregex "EEDTR$")>;
+def : InstRW<[FXU, DFU, Lat15, GroupAlone], (instregex "EEXTR$")>;
+
+// Extract significance
+def : InstRW<[FXU, DFU, Lat15, GroupAlone], (instregex "ESDTR$")>;
+def : InstRW<[FXU, DFU, DFU, Lat20, GroupAlone], (instregex "ESXTR$")>;
+
+//===----------------------------------------------------------------------===//
+// DFP: Binary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Addition
+def : InstRW<[DFU, Lat30], (instregex "ADTR(A)?$")>;
+def : InstRW<[DFU2, DFU2, Lat30, GroupAlone], (instregex "AXTR(A)?$")>;
+
+// Subtraction
+def : InstRW<[DFU, Lat30], (instregex "SDTR(A)?$")>;
+def : InstRW<[DFU2, DFU2, Lat30, GroupAlone], (instregex "SXTR(A)?$")>;
+
+// Multiply
+def : InstRW<[DFU, Lat30], (instregex "MDTR(A)?$")>;
+def : InstRW<[DFU2, DFU2, Lat30, GroupAlone], (instregex "MXTR(A)?$")>;
+
+// Division
+def : InstRW<[DFU, Lat30], (instregex "DDTR(A)?$")>;
+def : InstRW<[DFU2, DFU2, Lat30, GroupAlone], (instregex "DXTR(A)?$")>;
+
+// Quantize
+def : InstRW<[DFU, Lat30], (instregex "QADTR$")>;
+def : InstRW<[DFU2, DFU2, Lat30, GroupAlone], (instregex "QAXTR$")>;
+
+// Reround
+def : InstRW<[FXU, DFU, Lat30], (instregex "RRDTR$")>;
+def : InstRW<[FXU, DFU2, DFU2, Lat30, GroupAlone], (instregex "RRXTR$")>;
+
+// Shift significand left/right
+def : InstRW<[LSU, DFU, Lat11], (instregex "S(L|R)DT$")>;
+def : InstRW<[LSU, DFU2, DFU2, Lat15, GroupAlone], (instregex "S(L|R)XT$")>;
+
+// Insert biased exponent
+def : InstRW<[FXU, DFU, Lat11], (instregex "IEDTR$")>;
+def : InstRW<[FXU, DFU2, DFU2, Lat15, GroupAlone], (instregex "IEXTR$")>;
+
+//===----------------------------------------------------------------------===//
+// DFP: Comparisons
+//===----------------------------------------------------------------------===//
+
+// Compare
+def : InstRW<[DFU, Lat11], (instregex "(K|C)DTR$")>;
+def : InstRW<[DFU, DFU, Lat15, GroupAlone], (instregex "(K|C)XTR$")>;
+
+// Compare biased exponent
+def : InstRW<[DFU, Lat8], (instregex "CEDTR$")>;
+def : InstRW<[DFU, Lat9], (instregex "CEXTR$")>;
+
+// Test Data Class/Group
+def : InstRW<[LSU, DFU, Lat15], (instregex "TD(C|G)(E|D)T$")>;
+def : InstRW<[LSU, DFU2, DFU2, Lat15, GroupAlone], (instregex "TD(C|G)XT$")>;
+
 }
 

Modified: llvm/trunk/lib/Target/SystemZ/SystemZScheduleZEC12.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZScheduleZEC12.td?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZScheduleZEC12.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZScheduleZEC12.td Tue May 30 05:15:16 2017
@@ -984,5 +984,123 @@ def : InstRW<[FPU, LSU, Lat12], (instreg
 def : InstRW<[FPU], (instregex "C(E|D)R$")>;
 def : InstRW<[FPU, FPU, Lat15], (instregex "CXR$")>;
 
+
+// ------------------------ Decimal floating point -------------------------- //
+
+//===----------------------------------------------------------------------===//
+// DFP: Move instructions
+//===----------------------------------------------------------------------===//
+
+// Load and Test
+def : InstRW<[DFU, Lat20], (instregex "LTDTR$")>;
+def : InstRW<[DFU2, DFU2, Lat20, GroupAlone], (instregex "LTXTR$")>;
+
+//===----------------------------------------------------------------------===//
+// DFP: Conversion instructions
+//===----------------------------------------------------------------------===//
+
+// Load rounded
+def : InstRW<[DFU, Lat30], (instregex "LEDTR$")>;
+def : InstRW<[DFU, DFU, Lat30], (instregex "LDXTR$")>;
+
+// Load lengthened
+def : InstRW<[DFU, Lat20], (instregex "LDETR$")>;
+def : InstRW<[DFU2, DFU2, Lat20, GroupAlone], (instregex "LXDTR$")>;
+
+// Convert from fixed / logical
+def : InstRW<[FXU, DFU, Lat30, GroupAlone], (instregex "CD(F|G)TR(A)?$")>;
+def : InstRW<[FXU, DFU2, DFU2, Lat30, GroupAlone], (instregex "CX(F|G)TR(A)?$")>;
+def : InstRW<[FXU, DFU, Lat11, GroupAlone], (instregex "CDL(F|G)TR$")>;
+def : InstRW<[FXU, DFU2, DFU2, Lat11, GroupAlone], (instregex "CXL(F|G)TR$")>;
+
+// Convert to fixed / logical
+def : InstRW<[FXU, DFU, Lat30, GroupAlone], (instregex "C(F|G)DTR(A)?$")>;
+def : InstRW<[FXU, DFU, DFU, Lat30, GroupAlone], (instregex "C(F|G)XTR(A)?$")>;
+def : InstRW<[FXU, DFU, Lat30, GroupAlone], (instregex "CL(F|G)DTR$")>;
+def : InstRW<[FXU, DFU, DFU, Lat30, GroupAlone], (instregex "CL(F|G)XTR$")>;
+
+// Convert from / to signed / unsigned packed
+def : InstRW<[FXU, DFU, Lat12, GroupAlone], (instregex "CD(S|U)TR$")>;
+def : InstRW<[FXU, FXU, DFU2, DFU2, Lat20, GroupAlone], (instregex "CX(S|U)TR$")>;
+def : InstRW<[FXU, DFU, Lat12, GroupAlone], (instregex "C(S|U)DTR$")>;
+def : InstRW<[FXU, FXU, DFU2, DFU2, Lat20, GroupAlone], (instregex "C(S|U)XTR$")>;
+
+// Convert from / to zoned
+def : InstRW<[LSU, DFU2, Lat7, GroupAlone], (instregex "CDZT$")>;
+def : InstRW<[LSU, LSU, DFU2, DFU2, Lat10, GroupAlone], (instregex "CXZT$")>;
+def : InstRW<[FXU, LSU, DFU, Lat11, GroupAlone], (instregex "CZDT$")>;
+def : InstRW<[FXU, LSU, DFU, DFU, Lat15, GroupAlone], (instregex "CZXT$")>;
+
+// Perform floating-point operation
+def : InstRW<[LSU, Lat30, GroupAlone], (instregex "PFPO$")>;
+
+//===----------------------------------------------------------------------===//
+// DFP: Unary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Load FP integer
+def : InstRW<[DFU, Lat20], (instregex "FIDTR$")>;
+def : InstRW<[DFU2, DFU2, Lat20, GroupAlone], (instregex "FIXTR$")>;
+
+// Extract biased exponent
+def : InstRW<[FXU, DFU, Lat15, GroupAlone], (instregex "EEDTR$")>;
+def : InstRW<[FXU, DFU, Lat15, GroupAlone], (instregex "EEXTR$")>;
+
+// Extract significance
+def : InstRW<[FXU, DFU, Lat15, GroupAlone], (instregex "ESDTR$")>;
+def : InstRW<[FXU, DFU, DFU, Lat20, GroupAlone], (instregex "ESXTR$")>;
+
+//===----------------------------------------------------------------------===//
+// DFP: Binary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Addition
+def : InstRW<[DFU, Lat30], (instregex "ADTR(A)?$")>;
+def : InstRW<[DFU2, DFU2, Lat30, GroupAlone], (instregex "AXTR(A)?$")>;
+
+// Subtraction
+def : InstRW<[DFU, Lat30], (instregex "SDTR(A)?$")>;
+def : InstRW<[DFU2, DFU2, Lat30, GroupAlone], (instregex "SXTR(A)?$")>;
+
+// Multiply
+def : InstRW<[DFU, Lat30], (instregex "MDTR(A)?$")>;
+def : InstRW<[DFU2, DFU2, Lat30, GroupAlone], (instregex "MXTR(A)?$")>;
+
+// Division
+def : InstRW<[DFU, Lat30], (instregex "DDTR(A)?$")>;
+def : InstRW<[DFU2, DFU2, Lat30, GroupAlone], (instregex "DXTR(A)?$")>;
+
+// Quantize
+def : InstRW<[DFU, Lat30], (instregex "QADTR$")>;
+def : InstRW<[DFU2, DFU2, Lat30, GroupAlone], (instregex "QAXTR$")>;
+
+// Reround
+def : InstRW<[FXU, DFU, Lat30], (instregex "RRDTR$")>;
+def : InstRW<[FXU, DFU2, DFU2, Lat30, GroupAlone], (instregex "RRXTR$")>;
+
+// Shift significand left/right
+def : InstRW<[LSU, DFU, Lat11], (instregex "S(L|R)DT$")>;
+def : InstRW<[LSU, DFU2, DFU2, Lat15, GroupAlone], (instregex "S(L|R)XT$")>;
+
+// Insert biased exponent
+def : InstRW<[FXU, DFU, Lat11], (instregex "IEDTR$")>;
+def : InstRW<[FXU, DFU2, DFU2, Lat15, GroupAlone], (instregex "IEXTR$")>;
+
+//===----------------------------------------------------------------------===//
+// DFP: Comparisons
+//===----------------------------------------------------------------------===//
+
+// Compare
+def : InstRW<[DFU, Lat11], (instregex "(K|C)DTR$")>;
+def : InstRW<[DFU, DFU, Lat15, GroupAlone], (instregex "(K|C)XTR$")>;
+
+// Compare biased exponent
+def : InstRW<[DFU, Lat8], (instregex "CEDTR$")>;
+def : InstRW<[DFU, Lat9], (instregex "CEXTR$")>;
+
+// Test Data Class/Group
+def : InstRW<[LSU, DFU, Lat15], (instregex "TD(C|G)(E|D)T$")>;
+def : InstRW<[LSU, DFU2, DFU2, Lat15, GroupAlone], (instregex "TD(C|G)XT$")>;
+
 }
 

Modified: llvm/trunk/lib/Target/SystemZ/SystemZSubtarget.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZSubtarget.cpp?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZSubtarget.cpp (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZSubtarget.cpp Tue May 30 05:15:16 2017
@@ -42,8 +42,10 @@ SystemZSubtarget::SystemZSubtarget(const
       HasMiscellaneousExtensions(false),
       HasExecutionHint(false), HasLoadAndTrap(false),
       HasTransactionalExecution(false), HasProcessorAssist(false),
+      HasDFPZonedConversion(false),
       HasVector(false), HasLoadStoreOnCond2(false),
       HasLoadAndZeroRightmostByte(false), HasMessageSecurityAssist5(false),
+      HasDFPPackedConversion(false),
       TargetTriple(TT), InstrInfo(initializeSubtargetDependencies(CPU, FS)),
       TLInfo(TM, *this), TSInfo(), FrameLowering() {}
 

Modified: llvm/trunk/lib/Target/SystemZ/SystemZSubtarget.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZSubtarget.h?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZSubtarget.h (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZSubtarget.h Tue May 30 05:15:16 2017
@@ -47,10 +47,12 @@ protected:
   bool HasLoadAndTrap;
   bool HasTransactionalExecution;
   bool HasProcessorAssist;
+  bool HasDFPZonedConversion;
   bool HasVector;
   bool HasLoadStoreOnCond2;
   bool HasLoadAndZeroRightmostByte;
   bool HasMessageSecurityAssist5;
+  bool HasDFPPackedConversion;
 
 private:
   Triple TargetTriple;
@@ -133,6 +135,9 @@ public:
   // Return true if the target has the processor-assist facility.
   bool hasProcessorAssist() const { return HasProcessorAssist; }
 
+  // Return true if the target has the DFP zoned-conversion facility.
+  bool hasDFPZonedConversion() const { return HasDFPZonedConversion; }
+
   // Return true if the target has the load-and-zero-rightmost-byte facility.
   bool hasLoadAndZeroRightmostByte() const {
     return HasLoadAndZeroRightmostByte;
@@ -142,6 +147,9 @@ public:
   // extension facility 5.
   bool hasMessageSecurityAssist5() const { return HasMessageSecurityAssist5; }
 
+  // Return true if the target has the DFP packed-conversion facility.
+  bool hasDFPPackedConversion() const { return HasDFPPackedConversion; }
+
   // Return true if the target has the vector facility.
   bool hasVector() const { return HasVector; }
 

Modified: llvm/trunk/test/MC/Disassembler/SystemZ/insns-z13.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Disassembler/SystemZ/insns-z13.txt?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/test/MC/Disassembler/SystemZ/insns-z13.txt (original)
+++ llvm/trunk/test/MC/Disassembler/SystemZ/insns-z13.txt Tue May 30 05:15:16 2017
@@ -2,6 +2,114 @@
 # RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu -mcpu=z13 \
 # RUN:   | FileCheck %s
 
+# CHECK: cdpt %f0, 0(1), 0
+0xed 0x00 0x00 0x00 0x00 0xae
+
+# CHECK: cdpt %f15, 0(1), 0
+0xed 0x00 0x00 0x00 0xf0 0xae
+
+# CHECK: cdpt %f0, 0(1), 15
+0xed 0x00 0x00 0x00 0x0f 0xae
+
+# CHECK: cdpt %f0, 0(1,%r1), 0
+0xed 0x00 0x10 0x00 0x00 0xae
+
+# CHECK: cdpt %f0, 0(1,%r15), 0
+0xed 0x00 0xf0 0x00 0x00 0xae
+
+# CHECK: cdpt %f0, 4095(1,%r1), 0
+0xed 0x00 0x1f 0xff 0x00 0xae
+
+# CHECK: cdpt %f0, 4095(1,%r15), 0
+0xed 0x00 0xff 0xff 0x00 0xae
+
+# CHECK: cdpt %f0, 0(256,%r1), 0
+0xed 0xff 0x10 0x00 0x00 0xae
+
+# CHECK: cdpt %f0, 0(256,%r15), 0
+0xed 0xff 0xf0 0x00 0x00 0xae
+
+# CHECK: cpdt %f0, 0(1), 0
+0xed 0x00 0x00 0x00 0x00 0xac
+
+# CHECK: cpdt %f15, 0(1), 0
+0xed 0x00 0x00 0x00 0xf0 0xac
+
+# CHECK: cpdt %f0, 0(1), 15
+0xed 0x00 0x00 0x00 0x0f 0xac
+
+# CHECK: cpdt %f0, 0(1,%r1), 0
+0xed 0x00 0x10 0x00 0x00 0xac
+
+# CHECK: cpdt %f0, 0(1,%r15), 0
+0xed 0x00 0xf0 0x00 0x00 0xac
+
+# CHECK: cpdt %f0, 4095(1,%r1), 0
+0xed 0x00 0x1f 0xff 0x00 0xac
+
+# CHECK: cpdt %f0, 4095(1,%r15), 0
+0xed 0x00 0xff 0xff 0x00 0xac
+
+# CHECK: cpdt %f0, 0(256,%r1), 0
+0xed 0xff 0x10 0x00 0x00 0xac
+
+# CHECK: cpdt %f0, 0(256,%r15), 0
+0xed 0xff 0xf0 0x00 0x00 0xac
+
+# CHECK: cpxt %f0, 0(1), 0
+0xed 0x00 0x00 0x00 0x00 0xad
+
+# CHECK: cpxt %f13, 0(1), 0
+0xed 0x00 0x00 0x00 0xd0 0xad
+
+# CHECK: cpxt %f0, 0(1), 15
+0xed 0x00 0x00 0x00 0x0f 0xad
+
+# CHECK: cpxt %f0, 0(1,%r1), 0
+0xed 0x00 0x10 0x00 0x00 0xad
+
+# CHECK: cpxt %f0, 0(1,%r15), 0
+0xed 0x00 0xf0 0x00 0x00 0xad
+
+# CHECK: cpxt %f0, 4095(1,%r1), 0
+0xed 0x00 0x1f 0xff 0x00 0xad
+
+# CHECK: cpxt %f0, 4095(1,%r15), 0
+0xed 0x00 0xff 0xff 0x00 0xad
+
+# CHECK: cpxt %f0, 0(256,%r1), 0
+0xed 0xff 0x10 0x00 0x00 0xad
+
+# CHECK: cpxt %f0, 0(256,%r15), 0
+0xed 0xff 0xf0 0x00 0x00 0xad
+
+# CHECK: cxpt %f0, 0(1), 0
+0xed 0x00 0x00 0x00 0x00 0xaf
+
+# CHECK: cxpt %f13, 0(1), 0
+0xed 0x00 0x00 0x00 0xd0 0xaf
+
+# CHECK: cxpt %f0, 0(1), 15
+0xed 0x00 0x00 0x00 0x0f 0xaf
+
+# CHECK: cxpt %f0, 0(1,%r1), 0
+0xed 0x00 0x10 0x00 0x00 0xaf
+
+# CHECK: cxpt %f0, 0(1,%r15), 0
+0xed 0x00 0xf0 0x00 0x00 0xaf
+
+# CHECK: cxpt %f0, 4095(1,%r1), 0
+0xed 0x00 0x1f 0xff 0x00 0xaf
+
+# CHECK: cxpt %f0, 4095(1,%r15), 0
+0xed 0x00 0xff 0xff 0x00 0xaf
+
+# CHECK: cxpt %f0, 0(256,%r1), 0
+0xed 0xff 0x10 0x00 0x00 0xaf
+
+# CHECK: cxpt %f0, 0(256,%r15), 0
+0xed 0xff 0xf0 0x00 0x00 0xaf
+
 # CHECK: lcbb %r0, 0, 0
 0xe7 0x00 0x00 0x00 0x00 0x27
 

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=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt (original)
+++ llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt Tue May 30 05:15:16 2017
@@ -88,6 +88,39 @@
 # CHECK: adr %f15, %f0
 0x2a 0xf0
 
+# CHECK: adtr %f0, %f0, %f0
+0xb3 0xd2 0x00 0x00
+
+# CHECK: adtr %f0, %f0, %f15
+0xb3 0xd2 0xf0 0x00
+
+# CHECK: adtr %f0, %f15, %f0
+0xb3 0xd2 0x00 0x0f
+
+# CHECK: adtr %f15, %f0, %f0
+0xb3 0xd2 0x00 0xf0
+
+# CHECK: adtr %f7, %f8, %f9
+0xb3 0xd2 0x90 0x78
+
+# CHECK: adtra %f0, %f0, %f0, 1
+0xb3 0xd2 0x01 0x00
+
+# CHECK: adtra %f0, %f0, %f0, 15
+0xb3 0xd2 0x0f 0x00
+
+# CHECK: adtra %f0, %f0, %f15, 1
+0xb3 0xd2 0xf1 0x00
+
+# CHECK: adtra %f0, %f15, %f0, 1
+0xb3 0xd2 0x01 0x0f
+
+# CHECK: adtra %f15, %f0, %f0, 1
+0xb3 0xd2 0x01 0xf0
+
+# CHECK: adtra %f7, %f8, %f9, 10
+0xb3 0xd2 0x9a 0x78
+
 # CHECK: ae %f0, 0
 0x7a 0x00 0x00 0x00
 
@@ -1012,6 +1045,39 @@
 # CHECK: axr %f13, %f0
 0x36 0xd0
 
+# CHECK: axtr %f0, %f0, %f0
+0xb3 0xda 0x00 0x00
+
+# CHECK: axtr %f0, %f0, %f13
+0xb3 0xda 0xd0 0x00
+
+# CHECK: axtr %f0, %f13, %f0
+0xb3 0xda 0x00 0x0d
+
+# CHECK: axtr %f13, %f0, %f0
+0xb3 0xda 0x00 0xd0
+
+# CHECK: axtr %f8, %f8, %f8
+0xb3 0xda 0x80 0x88
+
+# CHECK: axtra %f0, %f0, %f0, 1
+0xb3 0xda 0x01 0x00
+
+# CHECK: axtra %f0, %f0, %f0, 15
+0xb3 0xda 0x0f 0x00
+
+# CHECK: axtra %f0, %f0, %f13, 1
+0xb3 0xda 0xd1 0x00
+
+# CHECK: axtra %f0, %f13, %f0, 1
+0xb3 0xda 0x01 0x0d
+
+# CHECK: axtra %f13, %f0, %f0, 1
+0xb3 0xda 0x01 0xd0
+
+# CHECK: axtra %f8, %f8, %f8, 8
+0xb3 0xda 0x88 0x88
+
 # CHECK: ay %r0, -524288
 0xe3 0x00 0x00 0x00 0x80 0x5a
 
@@ -1594,6 +1660,24 @@
 # CHECK: cdfr %f15, %r15
 0xb3 0xb5 0x00 0xff
 
+# CHECK: cdftr %f0, 0, %r0, 0
+0xb9 0x51 0x00 0x00
+
+# CHECK: cdftr %f0, 0, %r0, 15
+0xb9 0x51 0x0f 0x00
+
+# CHECK: cdftr %f0, 0, %r15, 0
+0xb9 0x51 0x00 0x0f
+
+# CHECK: cdftr %f0, 15, %r0, 0
+0xb9 0x51 0xf0 0x00
+
+# CHECK: cdftr %f4, 5, %r6, 7
+0xb9 0x51 0x57 0x46
+
+# CHECK: cdftr %f15, 0, %r0, 0
+0xb9 0x51 0x00 0xf0
+
 # CHECK: cdgbr %f0, %r0
 0xb3 0xa5 0x00 0x00
 
@@ -1642,6 +1726,39 @@
 # CHECK: cdgr %f15, %r15
 0xb3 0xc5 0x00 0xff
 
+# CHECK: cdgtr %f0, %r0
+0xb3 0xf1 0x00 0x00
+
+# CHECK: cdgtr %f0, %r15
+0xb3 0xf1 0x00 0x0f
+
+# CHECK: cdgtr %f15, %r0
+0xb3 0xf1 0x00 0xf0
+
+# CHECK: cdgtr %f7, %r8
+0xb3 0xf1 0x00 0x78
+
+# CHECK: cdgtr %f15, %r15
+0xb3 0xf1 0x00 0xff
+
+# CHECK: cdgtra %f0, 0, %r0, 1
+0xb3 0xf1 0x01 0x00
+
+# CHECK: cdgtra %f0, 0, %r0, 15
+0xb3 0xf1 0x0f 0x00
+
+# CHECK: cdgtra %f0, 0, %r15, 1
+0xb3 0xf1 0x01 0x0f
+
+# CHECK: cdgtra %f0, 15, %r0, 1
+0xb3 0xf1 0xf1 0x00
+
+# CHECK: cdgtra %f4, 5, %r6, 7
+0xb3 0xf1 0x57 0x46
+
+# CHECK: cdgtra %f15, 0, %r0, 1
+0xb3 0xf1 0x01 0xf0
+
 # CHECK: cdlfbr %f0, 0, %r0, 1
 0xb3 0x91 0x01 0x00
 
@@ -1660,6 +1777,24 @@
 # CHECK: cdlfbr %f15, 0, %r0, 1
 0xb3 0x91 0x01 0xf0
 
+# CHECK: cdlftr %f0, 0, %r0, 0
+0xb9 0x53 0x00 0x00
+
+# CHECK: cdlftr %f0, 0, %r0, 15
+0xb9 0x53 0x0f 0x00
+
+# CHECK: cdlftr %f0, 0, %r15, 0
+0xb9 0x53 0x00 0x0f
+
+# CHECK: cdlftr %f0, 15, %r0, 0
+0xb9 0x53 0xf0 0x00
+
+# CHECK: cdlftr %f4, 5, %r6, 7
+0xb9 0x53 0x57 0x46
+
+# CHECK: cdlftr %f15, 0, %r0, 0
+0xb9 0x53 0x00 0xf0
+
 # CHECK: cdlgbr %f0, 0, %r0, 1
 0xb3 0xa1 0x01 0x00
 
@@ -1678,6 +1813,24 @@
 # CHECK: cdlgbr %f15, 0, %r0, 1
 0xb3 0xa1 0x01 0xf0
 
+# CHECK: cdlgtr %f0, 0, %r0, 0
+0xb9 0x52 0x00 0x00
+
+# CHECK: cdlgtr %f0, 0, %r0, 15
+0xb9 0x52 0x0f 0x00
+
+# CHECK: cdlgtr %f0, 0, %r15, 0
+0xb9 0x52 0x00 0x0f
+
+# CHECK: cdlgtr %f0, 15, %r0, 0
+0xb9 0x52 0xf0 0x00
+
+# CHECK: cdlgtr %f4, 5, %r6, 7
+0xb9 0x52 0x57 0x46
+
+# CHECK: cdlgtr %f15, 0, %r0, 0
+0xb9 0x52 0x00 0xf0
+
 # CHECK: cdr %f0, %f0
 0x29 0x00
 
@@ -1747,6 +1900,21 @@
 # CHECK: cdsg %r14, %r0, 0
 0xeb 0xe0 0x00 0x00 0x00 0x3e
 
+# CHECK: cdstr %f0, %r0
+0xb3 0xf3 0x00 0x00
+
+# CHECK: cdstr %f0, %r15
+0xb3 0xf3 0x00 0x0f
+
+# CHECK: cdstr %f15, %r0
+0xb3 0xf3 0x00 0xf0
+
+# CHECK: cdstr %f7, %r8
+0xb3 0xf3 0x00 0x78
+
+# CHECK: cdstr %f15, %r15
+0xb3 0xf3 0x00 0xff
+
 # CHECK: cdsy %r0, %r0, -524288
 0xeb 0x00 0x00 0x00 0x80 0x31
 
@@ -1780,6 +1948,60 @@
 # CHECK: cdsy %r14, %r0, 0
 0xeb 0xe0 0x00 0x00 0x00 0x31
 
+# CHECK: cdtr %f0, %f0
+0xb3 0xe4 0x00 0x00
+
+# CHECK: cdtr %f0, %f15
+0xb3 0xe4 0x00 0x0f
+
+# CHECK: cdtr %f7, %f8
+0xb3 0xe4 0x00 0x78
+
+# CHECK: cdtr %f15, %f0
+0xb3 0xe4 0x00 0xf0
+
+# CHECK: cdutr %f0, %r0
+0xb3 0xf2 0x00 0x00
+
+# CHECK: cdutr %f0, %r15
+0xb3 0xf2 0x00 0x0f
+
+# CHECK: cdutr %f15, %r0
+0xb3 0xf2 0x00 0xf0
+
+# CHECK: cdutr %f7, %r8
+0xb3 0xf2 0x00 0x78
+
+# CHECK: cdutr %f15, %r15
+0xb3 0xf2 0x00 0xff
+
+# CHECK: cdzt %f0, 0(1), 0
+0xed 0x00 0x00 0x00 0x00 0xaa
+
+# CHECK: cdzt %f15, 0(1), 0
+0xed 0x00 0x00 0x00 0xf0 0xaa
+
+# CHECK: cdzt %f0, 0(1), 15
+0xed 0x00 0x00 0x00 0x0f 0xaa
+
+# CHECK: cdzt %f0, 0(1,%r1), 0
+0xed 0x00 0x10 0x00 0x00 0xaa
+
+# CHECK: cdzt %f0, 0(1,%r15), 0
+0xed 0x00 0xf0 0x00 0x00 0xaa
+
+# CHECK: cdzt %f0, 4095(1,%r1), 0
+0xed 0x00 0x1f 0xff 0x00 0xaa
+
+# CHECK: cdzt %f0, 4095(1,%r15), 0
+0xed 0x00 0xff 0xff 0x00 0xaa
+
+# CHECK: cdzt %f0, 0(256,%r1), 0
+0xed 0xff 0x10 0x00 0x00 0xaa
+
+# CHECK: cdzt %f0, 0(256,%r15), 0
+0xed 0xff 0xf0 0x00 0x00 0xaa
+
 # CHECK: ce %f0, 0
 0x79 0x00 0x00 0x00
 
@@ -1834,6 +2056,18 @@
 # CHECK: cebr %f15, %f0
 0xb3 0x09 0x00 0xf0
 
+# CHECK: cedtr %f0, %f0
+0xb3 0xf4 0x00 0x00
+
+# CHECK: cedtr %f0, %f15
+0xb3 0xf4 0x00 0x0f
+
+# CHECK: cedtr %f7, %f8
+0xb3 0xf4 0x00 0x78
+
+# CHECK: cedtr %f15, %f0
+0xb3 0xf4 0x00 0xf0
+
 # CHECK: cefbr %f0, %r0
 0xb3 0x94 0x00 0x00
 
@@ -1978,6 +2212,18 @@
 # CHECK: cer %f15, %f0
 0x39 0xf0
 
+# CHECK: cextr %f0, %f0
+0xb3 0xfc 0x00 0x00
+
+# CHECK: cextr %f0, %f13
+0xb3 0xfc 0x00 0x0d
+
+# CHECK: cextr %f8, %f8
+0xb3 0xfc 0x00 0x88
+
+# CHECK: cextr %f13, %f0
+0xb3 0xfc 0x00 0xd0
+
 # CHECK: cfc 0
 0xb2 0x1a 0x00 0x00
 
@@ -2044,6 +2290,24 @@
 # CHECK: cfdr %r15, 0, %f0
 0xb3 0xb9 0x00 0xf0
 
+# CHECK: cfdtr %r0, 0, %f0, 0
+0xb9 0x41 0x00 0x00
+
+# CHECK: cfdtr %r0, 0, %f0, 15
+0xb9 0x41 0x0f 0x00
+
+# CHECK: cfdtr %r0, 0, %f15, 0
+0xb9 0x41 0x00 0x0f
+
+# CHECK: cfdtr %r0, 15, %f0, 0
+0xb9 0x41 0xf0 0x00
+
+# CHECK: cfdtr %r4, 5, %f6, 7
+0xb9 0x41 0x57 0x46
+
+# CHECK: cfdtr %r15, 0, %f0, 0
+0xb9 0x41 0x00 0xf0
+
 # CHECK: cfebr %r0, 0, %f0
 0xb3 0x98 0x00 0x00
 
@@ -2158,6 +2422,24 @@
 # CHECK: cfxr %r15, 0, %f0
 0xb3 0xba 0x00 0xf0
 
+# CHECK: cfxtr %r0, 0, %f0, 0
+0xb9 0x49 0x00 0x00
+
+# CHECK: cfxtr %r0, 0, %f0, 15
+0xb9 0x49 0x0f 0x00
+
+# CHECK: cfxtr %r0, 0, %f13, 0
+0xb9 0x49 0x00 0x0d
+
+# CHECK: cfxtr %r0, 15, %f0, 0
+0xb9 0x49 0xf0 0x00
+
+# CHECK: cfxtr %r7, 5, %f8, 9
+0xb9 0x49 0x59 0x78
+
+# CHECK: cfxtr %r15, 0, %f0, 0
+0xb9 0x49 0x00 0xf0
+
 # CHECK: cg %r0, -524288
 0xe3 0x00 0x00 0x00 0x80 0x20
 
@@ -2236,6 +2518,39 @@
 # CHECK: cgdr %r15, 0, %f0
 0xb3 0xc9 0x00 0xf0
 
+# CHECK: cgdtr %r0, 0, %f0
+0xb3 0xe1 0x00 0x00
+
+# CHECK: cgdtr %r0, 0, %f15
+0xb3 0xe1 0x00 0x0f
+
+# CHECK: cgdtr %r0, 15, %f0
+0xb3 0xe1 0xf0 0x00
+
+# CHECK: cgdtr %r4, 5, %f6
+0xb3 0xe1 0x50 0x46
+
+# CHECK: cgdtr %r15, 0, %f0
+0xb3 0xe1 0x00 0xf0
+
+# CHECK: cgdtra %r0, 0, %f0, 1
+0xb3 0xe1 0x01 0x00
+
+# CHECK: cgdtra %r0, 0, %f0, 15
+0xb3 0xe1 0x0f 0x00
+
+# CHECK: cgdtra %r0, 0, %f15, 1
+0xb3 0xe1 0x01 0x0f
+
+# CHECK: cgdtra %r0, 15, %f0, 1
+0xb3 0xe1 0xf1 0x00
+
+# CHECK: cgdtra %r4, 5, %f6, 7
+0xb3 0xe1 0x57 0x46
+
+# CHECK: cgdtra %r15, 0, %f0, 1
+0xb3 0xe1 0x01 0xf0
+
 # CHECK: cgebr %r0, 0, %f0
 0xb3 0xa8 0x00 0x00
 
@@ -2659,6 +2974,39 @@
 # CHECK: cgxr %r15, 0, %f0
 0xb3 0xca 0x00 0xf0
 
+# CHECK: cgxtr %r0, 0, %f0
+0xb3 0xe9 0x00 0x00
+
+# CHECK: cgxtr %r0, 0, %f13
+0xb3 0xe9 0x00 0x0d
+
+# CHECK: cgxtr %r0, 15, %f0
+0xb3 0xe9 0xf0 0x00
+
+# CHECK: cgxtr %r4, 5, %f8
+0xb3 0xe9 0x50 0x48
+
+# CHECK: cgxtr %r15, 0, %f0
+0xb3 0xe9 0x00 0xf0
+
+# CHECK: cgxtra %r0, 0, %f0, 1
+0xb3 0xe9 0x01 0x00
+
+# CHECK: cgxtra %r0, 0, %f0, 15
+0xb3 0xe9 0x0f 0x00
+
+# CHECK: cgxtra %r0, 0, %f13, 1
+0xb3 0xe9 0x01 0x0d
+
+# CHECK: cgxtra %r0, 15, %f0, 1
+0xb3 0xe9 0xf1 0x00
+
+# CHECK: cgxtra %r7, 5, %f8, 9
+0xb3 0xe9 0x59 0x78
+
+# CHECK: cgxtra %r15, 0, %f0, 1
+0xb3 0xe9 0x01 0xf0
+
 # CHECK: ch %r0, 0
 0x49 0x00 0x00 0x00
 
@@ -3082,6 +3430,24 @@
 # CHECK: clfdbr %r15, 0, %f0, 1
 0xb3 0x9d 0x01 0xf0
 
+# CHECK: clfdtr %r0, 0, %f0, 0
+0xb9 0x43 0x00 0x00
+
+# CHECK: clfdtr %r0, 0, %f0, 15
+0xb9 0x43 0x0f 0x00
+
+# CHECK: clfdtr %r0, 0, %f15, 0
+0xb9 0x43 0x00 0x0f
+
+# CHECK: clfdtr %r0, 15, %f0, 0
+0xb9 0x43 0xf0 0x00
+
+# CHECK: clfdtr %r4, 5, %f6, 7
+0xb9 0x43 0x57 0x46
+
+# CHECK: clfdtr %r15, 0, %f0, 0
+0xb9 0x43 0x00 0xf0
+
 # CHECK: clfebr %r0, 0, %f0, 1
 0xb3 0x9c 0x01 0x00
 
@@ -3118,6 +3484,24 @@
 # CHECK: clfxbr %r15, 0, %f0, 1
 0xb3 0x9e 0x01 0xf0
 
+# CHECK: clfxtr %r0, 0, %f0, 0
+0xb9 0x4b 0x00 0x00
+
+# CHECK: clfxtr %r0, 0, %f0, 15
+0xb9 0x4b 0x0f 0x00
+
+# CHECK: clfxtr %r0, 0, %f13, 0
+0xb9 0x4b 0x00 0x0d
+
+# CHECK: clfxtr %r0, 15, %f0, 0
+0xb9 0x4b 0xf0 0x00
+
+# CHECK: clfxtr %r7, 5, %f8, 9
+0xb9 0x4b 0x59 0x78
+
+# CHECK: clfxtr %r15, 0, %f0, 0
+0xb9 0x4b 0x00 0xf0
+
 # CHECK: clgdbr %r0, 0, %f0, 1
 0xb3 0xad 0x01 0x00
 
@@ -3136,6 +3520,24 @@
 # CHECK: clgdbr %r15, 0, %f0, 1
 0xb3 0xad 0x01 0xf0
 
+# CHECK: clgdtr %r0, 0, %f0, 0
+0xb9 0x42 0x00 0x00
+
+# CHECK: clgdtr %r0, 0, %f0, 15
+0xb9 0x42 0x0f 0x00
+
+# CHECK: clgdtr %r0, 0, %f15, 0
+0xb9 0x42 0x00 0x0f
+
+# CHECK: clgdtr %r0, 15, %f0, 0
+0xb9 0x42 0xf0 0x00
+
+# CHECK: clgdtr %r4, 5, %f6, 7
+0xb9 0x42 0x57 0x46
+
+# CHECK: clgdtr %r15, 0, %f0, 0
+0xb9 0x42 0x00 0xf0
+
 # CHECK: clgebr %r0, 0, %f0, 1
 0xb3 0xac 0x01 0x00
 
@@ -3244,6 +3646,24 @@
 # CHECK: clgxbr %r15, 0, %f0, 1
 0xb3 0xae 0x01 0xf0
 
+# CHECK: clgxtr %r0, 0, %f0, 0
+0xb9 0x4a 0x00 0x00
+
+# CHECK: clgxtr %r0, 0, %f0, 15
+0xb9 0x4a 0x0f 0x00
+
+# CHECK: clgxtr %r0, 0, %f13, 0
+0xb9 0x4a 0x00 0x0d
+
+# CHECK: clgxtr %r0, 15, %f0, 0
+0xb9 0x4a 0xf0 0x00
+
+# CHECK: clgxtr %r7, 5, %f8, 9
+0xb9 0x4a 0x59 0x78
+
+# CHECK: clgxtr %r15, 0, %f0, 0
+0xb9 0x4a 0x00 0xf0
+
 # CHECK: clfhsi 0, 0
 0xe5 0x5d 0x00 0x00 0x00 0x00
 
@@ -4204,6 +4624,21 @@
 # CHECK: cs %r15, %r0, 0
 0xba 0xf0 0x00 0x00
 
+# CHECK: csdtr %r0, %f0, 0
+0xb3 0xe3 0x00 0x00
+
+# CHECK: csdtr %r0, %f15, 0
+0xb3 0xe3 0x00 0x0f
+
+# CHECK: csdtr %r0, %f0, 15
+0xb3 0xe3 0x0f 0x00
+
+# CHECK: csdtr %r4, %f5, 6
+0xb3 0xe3 0x06 0x45
+
+# CHECK: csdtr %r15, %f0, 0
+0xb3 0xe3 0x00 0xf0
+
 # CHECK: csg %r0, %r0, -524288
 0xeb 0x00 0x00 0x00 0x80 0x30
 
@@ -4258,6 +4693,21 @@
 # CHECK: csst 4095(%r1), 0(%r15), %r2
 0xc8 0x22 0x1f 0xff 0xf0 0x00
 
+# CHECK: csxtr %r0, %f0, 0
+0xb3 0xeb 0x00 0x00
+
+# CHECK: csxtr %r0, %f13, 0
+0xb3 0xeb 0x00 0x0d
+
+# CHECK: csxtr %r0, %f0, 15
+0xb3 0xeb 0x0f 0x00
+
+# CHECK: csxtr %r4, %f5, 6
+0xb3 0xeb 0x06 0x45
+
+# CHECK: csxtr %r14, %f0, 0
+0xb3 0xeb 0x00 0xe0
+
 # CHECK: csy %r0, %r0, -524288
 0xeb 0x00 0x00 0x00 0x80 0x14
 
@@ -4387,6 +4837,21 @@
 # CHECK: cu42 %r6, %r8
 0xb9 0xb3 0x00 0x68
 
+# CHECK: cudtr %r0, %f0
+0xb3 0xe2 0x00 0x00
+
+# CHECK: cudtr %r0, %f15
+0xb3 0xe2 0x00 0x0f
+
+# CHECK: cudtr %r15, %f0
+0xb3 0xe2 0x00 0xf0
+
+# CHECK: cudtr %r7, %f8
+0xb3 0xe2 0x00 0x78
+
+# CHECK: cudtr %r15, %f15
+0xb3 0xe2 0x00 0xff
+
 # CHECK: cuse %r0, %r0
 0xb2 0x57 0x00 0x00
 
@@ -4399,6 +4864,21 @@
 # CHECK: cuse %r6, %r8
 0xb2 0x57 0x00 0x68
 
+# CHECK: cuxtr %r0, %f0
+0xb3 0xea 0x00 0x00
+
+# CHECK: cuxtr %r0, %f13
+0xb3 0xea 0x00 0x0d
+
+# CHECK: cuxtr %r14, %f0
+0xb3 0xea 0x00 0xe0
+
+# CHECK: cuxtr %r6, %f8
+0xb3 0xea 0x00 0x68
+
+# CHECK: cuxtr %r14, %f13
+0xb3 0xea 0x00 0xed
+
 # CHECK: cvb %r0, 0
 0x4f 0x00 0x00 0x00
 
@@ -4621,6 +5101,24 @@
 # CHECK: cxfr %f13, %r15
 0xb3 0xb6 0x00 0xdf
 
+# CHECK: cxftr %f0, 0, %r0, 0
+0xb9 0x59 0x00 0x00
+
+# CHECK: cxftr %f0, 0, %r0, 15
+0xb9 0x59 0x0f 0x00
+
+# CHECK: cxftr %f0, 0, %r15, 0
+0xb9 0x59 0x00 0x0f
+
+# CHECK: cxftr %f0, 15, %r0, 0
+0xb9 0x59 0xf0 0x00
+
+# CHECK: cxftr %f4, 5, %r9, 10
+0xb9 0x59 0x5a 0x49
+
+# CHECK: cxftr %f13, 0, %r0, 0
+0xb9 0x59 0x00 0xd0
+
 # CHECK: cxgbr %f0, %r0
 0xb3 0xa6 0x00 0x00
 
@@ -4669,6 +5167,39 @@
 # CHECK: cxgr %f13, %r15
 0xb3 0xc6 0x00 0xdf
 
+# CHECK: cxgtr %f0, %r0
+0xb3 0xf9 0x00 0x00
+
+# CHECK: cxgtr %f0, %r15
+0xb3 0xf9 0x00 0x0f
+
+# CHECK: cxgtr %f13, %r0
+0xb3 0xf9 0x00 0xd0
+
+# CHECK: cxgtr %f8, %r7
+0xb3 0xf9 0x00 0x87
+
+# CHECK: cxgtr %f13, %r15
+0xb3 0xf9 0x00 0xdf
+
+# CHECK: cxgtra %f0, 0, %r0, 1
+0xb3 0xf9 0x01 0x00
+
+# CHECK: cxgtra %f0, 0, %r0, 15
+0xb3 0xf9 0x0f 0x00
+
+# CHECK: cxgtra %f0, 0, %r15, 1
+0xb3 0xf9 0x01 0x0f
+
+# CHECK: cxgtra %f0, 15, %r0, 1
+0xb3 0xf9 0xf1 0x00
+
+# CHECK: cxgtra %f4, 5, %r9, 10
+0xb3 0xf9 0x5a 0x49
+
+# CHECK: cxgtra %f13, 0, %r0, 1
+0xb3 0xf9 0x01 0xd0
+
 # CHECK: cxlfbr %f0, 0, %r0, 1
 0xb3 0x92 0x01 0x00
 
@@ -4687,6 +5218,24 @@
 # CHECK: cxlfbr %f13, 0, %r0, 1
 0xb3 0x92 0x01 0xd0
 
+# CHECK: cxlftr %f0, 0, %r0, 0
+0xb9 0x5b 0x00 0x00
+
+# CHECK: cxlftr %f0, 0, %r0, 15
+0xb9 0x5b 0x0f 0x00
+
+# CHECK: cxlftr %f0, 0, %r15, 0
+0xb9 0x5b 0x00 0x0f
+
+# CHECK: cxlftr %f0, 15, %r0, 0
+0xb9 0x5b 0xf0 0x00
+
+# CHECK: cxlftr %f4, 5, %r9, 10
+0xb9 0x5b 0x5a 0x49
+
+# CHECK: cxlftr %f13, 0, %r0, 0
+0xb9 0x5b 0x00 0xd0
+
 # CHECK: cxlgbr %f0, 0, %r0, 1
 0xb3 0xa2 0x01 0x00
 
@@ -4705,6 +5254,24 @@
 # CHECK: cxlgbr %f13, 0, %r0, 1
 0xb3 0xa2 0x01 0xd0
 
+# CHECK: cxlgtr %f0, 0, %r0, 0
+0xb9 0x5a 0x00 0x00
+
+# CHECK: cxlgtr %f0, 0, %r0, 15
+0xb9 0x5a 0x0f 0x00
+
+# CHECK: cxlgtr %f0, 0, %r15, 0
+0xb9 0x5a 0x00 0x0f
+
+# CHECK: cxlgtr %f0, 15, %r0, 0
+0xb9 0x5a 0xf0 0x00
+
+# CHECK: cxlgtr %f4, 5, %r9, 10
+0xb9 0x5a 0x5a 0x49
+
+# CHECK: cxlgtr %f13, 0, %r0, 0
+0xb9 0x5a 0x00 0xd0
+
 # CHECK: cxr %f0, %f0
 0xb3 0x69 0x00 0x00
 
@@ -4717,6 +5284,75 @@
 # CHECK: cxr %f13, %f0
 0xb3 0x69 0x00 0xd0
 
+# CHECK: cxstr %f0, %r0
+0xb3 0xfb 0x00 0x00
+
+# CHECK: cxstr %f0, %r14
+0xb3 0xfb 0x00 0x0e
+
+# CHECK: cxstr %f13, %r0
+0xb3 0xfb 0x00 0xd0
+
+# CHECK: cxstr %f8, %r6
+0xb3 0xfb 0x00 0x86
+
+# CHECK: cxstr %f13, %r14
+0xb3 0xfb 0x00 0xde
+
+# CHECK: cxtr %f0, %f0
+0xb3 0xec 0x00 0x00
+
+# CHECK: cxtr %f0, %f13
+0xb3 0xec 0x00 0x0d
+
+# CHECK: cxtr %f8, %f8
+0xb3 0xec 0x00 0x88
+
+# CHECK: cxtr %f13, %f0
+0xb3 0xec 0x00 0xd0
+
+# CHECK: cxutr %f0, %r0
+0xb3 0xfa 0x00 0x00
+
+# CHECK: cxutr %f0, %r14
+0xb3 0xfa 0x00 0x0e
+
+# CHECK: cxutr %f13, %r0
+0xb3 0xfa 0x00 0xd0
+
+# CHECK: cxutr %f8, %r6
+0xb3 0xfa 0x00 0x86
+
+# CHECK: cxutr %f13, %r14
+0xb3 0xfa 0x00 0xde
+
+# CHECK: cxzt %f0, 0(1), 0
+0xed 0x00 0x00 0x00 0x00 0xab
+
+# CHECK: cxzt %f13, 0(1), 0
+0xed 0x00 0x00 0x00 0xd0 0xab
+
+# CHECK: cxzt %f0, 0(1), 15
+0xed 0x00 0x00 0x00 0x0f 0xab
+
+# CHECK: cxzt %f0, 0(1,%r1), 0
+0xed 0x00 0x10 0x00 0x00 0xab
+
+# CHECK: cxzt %f0, 0(1,%r15), 0
+0xed 0x00 0xf0 0x00 0x00 0xab
+
+# CHECK: cxzt %f0, 4095(1,%r1), 0
+0xed 0x00 0x1f 0xff 0x00 0xab
+
+# CHECK: cxzt %f0, 4095(1,%r15), 0
+0xed 0x00 0xff 0xff 0x00 0xab
+
+# CHECK: cxzt %f0, 0(256,%r1), 0
+0xed 0xff 0x10 0x00 0x00 0xab
+
+# CHECK: cxzt %f0, 0(256,%r15), 0
+0xed 0xff 0xf0 0x00 0x00 0xab
+
 # CHECK: cy %r0, -524288
 0xe3 0x00 0x00 0x00 0x80 0x59
 
@@ -4747,6 +5383,60 @@
 # CHECK: cy %r15, 0
 0xe3 0xf0 0x00 0x00 0x00 0x59
 
+# CHECK: czdt %f0, 0(1), 0
+0xed 0x00 0x00 0x00 0x00 0xa8
+
+# CHECK: czdt %f15, 0(1), 0
+0xed 0x00 0x00 0x00 0xf0 0xa8
+
+# CHECK: czdt %f0, 0(1), 15
+0xed 0x00 0x00 0x00 0x0f 0xa8
+
+# CHECK: czdt %f0, 0(1,%r1), 0
+0xed 0x00 0x10 0x00 0x00 0xa8
+
+# CHECK: czdt %f0, 0(1,%r15), 0
+0xed 0x00 0xf0 0x00 0x00 0xa8
+
+# CHECK: czdt %f0, 4095(1,%r1), 0
+0xed 0x00 0x1f 0xff 0x00 0xa8
+
+# CHECK: czdt %f0, 4095(1,%r15), 0
+0xed 0x00 0xff 0xff 0x00 0xa8
+
+# CHECK: czdt %f0, 0(256,%r1), 0
+0xed 0xff 0x10 0x00 0x00 0xa8
+
+# CHECK: czdt %f0, 0(256,%r15), 0
+0xed 0xff 0xf0 0x00 0x00 0xa8
+
+# CHECK: czxt %f0, 0(1), 0
+0xed 0x00 0x00 0x00 0x00 0xa9
+
+# CHECK: czxt %f13, 0(1), 0
+0xed 0x00 0x00 0x00 0xd0 0xa9
+
+# CHECK: czxt %f0, 0(1), 15
+0xed 0x00 0x00 0x00 0x0f 0xa9
+
+# CHECK: czxt %f0, 0(1,%r1), 0
+0xed 0x00 0x10 0x00 0x00 0xa9
+
+# CHECK: czxt %f0, 0(1,%r15), 0
+0xed 0x00 0xf0 0x00 0x00 0xa9
+
+# CHECK: czxt %f0, 4095(1,%r1), 0
+0xed 0x00 0x1f 0xff 0x00 0xa9
+
+# CHECK: czxt %f0, 4095(1,%r15), 0
+0xed 0x00 0xff 0xff 0x00 0xa9
+
+# CHECK: czxt %f0, 0(256,%r1), 0
+0xed 0xff 0x10 0x00 0x00 0xa9
+
+# CHECK: czxt %f0, 0(256,%r15), 0
+0xed 0xff 0xf0 0x00 0x00 0xa9
+
 # CHECK: d %r0, 0
 0x5d 0x00 0x00 0x00
 
@@ -4834,6 +5524,39 @@
 # CHECK: ddr %f15, %f0
 0x2d 0xf0
 
+# CHECK: ddtr %f0, %f0, %f0
+0xb3 0xd1 0x00 0x00
+
+# CHECK: ddtr %f0, %f0, %f15
+0xb3 0xd1 0xf0 0x00
+
+# CHECK: ddtr %f0, %f15, %f0
+0xb3 0xd1 0x00 0x0f
+
+# CHECK: ddtr %f15, %f0, %f0
+0xb3 0xd1 0x00 0xf0
+
+# CHECK: ddtr %f7, %f8, %f9
+0xb3 0xd1 0x90 0x78
+
+# CHECK: ddtra %f0, %f0, %f0, 1
+0xb3 0xd1 0x01 0x00
+
+# CHECK: ddtra %f0, %f0, %f0, 15
+0xb3 0xd1 0x0f 0x00
+
+# CHECK: ddtra %f0, %f0, %f15, 1
+0xb3 0xd1 0xf1 0x00
+
+# CHECK: ddtra %f0, %f15, %f0, 1
+0xb3 0xd1 0x01 0x0f
+
+# CHECK: ddtra %f15, %f0, %f0, 1
+0xb3 0xd1 0x01 0xf0
+
+# CHECK: ddtra %f7, %f8, %f9, 10
+0xb3 0xd1 0x9a 0x78
+
 # CHECK: de %f0, 0
 0x7d 0x00 0x00 0x00
 
@@ -5182,6 +5905,39 @@
 # CHECK: dxr %f13, %f0
 0xb2 0x2d 0x00 0xd0
 
+# CHECK: dxtr %f0, %f0, %f0
+0xb3 0xd9 0x00 0x00
+
+# CHECK: dxtr %f0, %f0, %f13
+0xb3 0xd9 0xd0 0x00
+
+# CHECK: dxtr %f0, %f13, %f0
+0xb3 0xd9 0x00 0x0d
+
+# CHECK: dxtr %f13, %f0, %f0
+0xb3 0xd9 0x00 0xd0
+
+# CHECK: dxtr %f8, %f8, %f8
+0xb3 0xd9 0x80 0x88
+
+# CHECK: dxtra %f0, %f0, %f0, 1
+0xb3 0xd9 0x01 0x00
+
+# CHECK: dxtra %f0, %f0, %f0, 15
+0xb3 0xd9 0x0f 0x00
+
+# CHECK: dxtra %f0, %f0, %f13, 1
+0xb3 0xd9 0xd1 0x00
+
+# CHECK: dxtra %f0, %f13, %f0, 1
+0xb3 0xd9 0x01 0x0d
+
+# CHECK: dxtra %f13, %f0, %f0, 1
+0xb3 0xd9 0x01 0xd0
+
+# CHECK: dxtra %f8, %f8, %f8, 8
+0xb3 0xd9 0x88 0x88
+
 # CHECK: ear %r0, %a0
 0xb2 0x4f 0x00 0x00
 
@@ -5329,6 +6085,30 @@
 # CHECK: edmk 0(256,%r15), 0
 0xdf 0xff 0xf0 0x00 0x00 0x00
 
+# CHECK: eedtr %f0, %f9
+0xb3 0xe5 0x00 0x09
+
+# CHECK: eedtr %f0, %f15
+0xb3 0xe5 0x00 0x0f
+
+# CHECK: eedtr %f15, %f0
+0xb3 0xe5 0x00 0xf0
+
+# CHECK: eedtr %f15, %f9
+0xb3 0xe5 0x00 0xf9
+
+# CHECK: eextr %f0, %f8
+0xb3 0xed 0x00 0x08
+
+# CHECK: eextr %f0, %f13
+0xb3 0xed 0x00 0x0d
+
+# CHECK: eextr %f13, %f0
+0xb3 0xed 0x00 0xd0
+
+# CHECK: eextr %f13, %f9
+0xb3 0xed 0x00 0xd9
+
 # CHECK: efpc %r0
 0xb3 0x8c 0x00 0x00
 
@@ -5350,6 +6130,30 @@
 # CHECK: epsw %r6, %r8
 0xb9 0x8d 0x00 0x68
 
+# CHECK: esdtr %f0, %f9
+0xb3 0xe7 0x00 0x09
+
+# CHECK: esdtr %f0, %f15
+0xb3 0xe7 0x00 0x0f
+
+# CHECK: esdtr %f15, %f0
+0xb3 0xe7 0x00 0xf0
+
+# CHECK: esdtr %f15, %f9
+0xb3 0xe7 0x00 0xf9
+
+# CHECK: esxtr %f0, %f8
+0xb3 0xef 0x00 0x08
+
+# CHECK: esxtr %f0, %f13
+0xb3 0xef 0x00 0x0d
+
+# CHECK: esxtr %f13, %f0
+0xb3 0xef 0x00 0xd0
+
+# CHECK: esxtr %f13, %f9
+0xb3 0xef 0x00 0xd9
+
 # CHECK: etnd %r0
 0xb2 0xec 0x00 0x00
 
@@ -5425,6 +6229,24 @@
 # CHECK: fidr %f15, %f0
 0xb3 0x7f 0x00 0xf0
 
+# CHECK: fidtr %f0, 0, %f0, 0
+0xb3 0xd7 0x00 0x00
+
+# CHECK: fidtr %f0, 0, %f0, 15
+0xb3 0xd7 0x0f 0x00
+
+# CHECK: fidtr %f0, 0, %f15, 0
+0xb3 0xd7 0x00 0x0f
+
+# CHECK: fidtr %f0, 15, %f0, 0
+0xb3 0xd7 0xf0 0x00
+
+# CHECK: fidtr %f4, 5, %f6, 7
+0xb3 0xd7 0x57 0x46
+
+# CHECK: fidtr %f15, 0, %f0, 0
+0xb3 0xd7 0x00 0xf0
+
 # CHECK: fiebr %f0, 0, %f0
 0xb3 0x57 0x00 0x00
 
@@ -5515,6 +6337,24 @@
 # CHECK: fixr %f13, %f0
 0xb3 0x67 0x00 0xd0
 
+# CHECK: fixtr %f0, 0, %f0, 0
+0xb3 0xdf 0x00 0x00
+
+# CHECK: fixtr %f0, 0, %f0, 15
+0xb3 0xdf 0x0f 0x00
+
+# CHECK: fixtr %f0, 0, %f13, 0
+0xb3 0xdf 0x00 0x0d
+
+# CHECK: fixtr %f0, 15, %f0, 0
+0xb3 0xdf 0xf0 0x00
+
+# CHECK: fixtr %f4, 5, %f8, 9
+0xb3 0xdf 0x59 0x48
+
+# CHECK: fixtr %f13, 0, %f0, 0
+0xb3 0xdf 0x00 0xd0
+
 # CHECK: flogr %r0, %r0
 0xb9 0x83 0x00 0x00
 
@@ -5683,6 +6523,42 @@
 # CHECK: icy %r15, 0
 0xe3 0xf0 0x00 0x00 0x00 0x73
 
+# CHECK: iedtr %f0, %f0, %f0
+0xb3 0xf6 0x00 0x00
+
+# CHECK: iedtr %f0, %f0, %f15
+0xb3 0xf6 0x00 0x0f
+
+# CHECK: iedtr %f0, %f15, %f0
+0xb3 0xf6 0xf0 0x00
+
+# CHECK: iedtr %f15, %f0, %f0
+0xb3 0xf6 0x00 0xf0
+
+# CHECK: iedtr %f1, %f2, %f3
+0xb3 0xf6 0x20 0x13
+
+# CHECK: iedtr %f15, %f15, %f15
+0xb3 0xf6 0xf0 0xff
+
+# CHECK: iextr %f0, %f0, %f0
+0xb3 0xfe 0x00 0x00
+
+# CHECK: iextr %f0, %f0, %f13
+0xb3 0xfe 0x00 0x0d
+
+# CHECK: iextr %f0, %f13, %f0
+0xb3 0xfe 0xd0 0x00
+
+# CHECK: iextr %f13, %f0, %f0
+0xb3 0xfe 0x00 0xd0
+
+# CHECK: iextr %f1, %f8, %f4
+0xb3 0xfe 0x80 0x14
+
+# CHECK: iextr %f13, %f13, %f13
+0xb3 0xfe 0xd0 0xdd
+
 # CHECK: iihf %r0, 0
 0xc0 0x08 0x00 0x00 0x00 0x00
 
@@ -5791,6 +6667,18 @@
 # CHECK: kdbr %f15, %f0
 0xb3 0x18 0x00 0xf0
 
+# CHECK: kdtr %f0, %f0
+0xb3 0xe0 0x00 0x00
+
+# CHECK: kdtr %f0, %f15
+0xb3 0xe0 0x00 0x0f
+
+# CHECK: kdtr %f7, %f8
+0xb3 0xe0 0x00 0x78
+
+# CHECK: kdtr %f15, %f0
+0xb3 0xe0 0x00 0xf0
+
 # CHECK: keb %f0, 0
 0xed 0x00 0x00 0x00 0x00 0x08
 
@@ -5932,6 +6820,18 @@
 # CHECK: kxbr %f13, %f0
 0xb3 0x48 0x00 0xd0
 
+# CHECK: kxtr %f0, %f0
+0xb3 0xe8 0x00 0x00
+
+# CHECK: kxtr %f0, %f13
+0xb3 0xe8 0x00 0x0d
+
+# CHECK: kxtr %f8, %f8
+0xb3 0xe8 0x00 0x88
+
+# CHECK: kxtr %f13, %f0
+0xb3 0xe8 0x00 0xd0
+
 # CHECK: l %r0, 0
 0x58 0x00 0x00 0x00
 
@@ -6741,6 +7641,18 @@
 # CHECK: lder %f15, %f0
 0xb3 0x24 0x00 0xf0
 
+# CHECK: ldetr %f0, %f0, 15
+0xb3 0xd4 0x0f 0x00
+
+# CHECK: ldetr %f0, %f15, 0
+0xb3 0xd4 0x00 0x0f
+
+# CHECK: ldetr %f7, %f8, 9
+0xb3 0xd4 0x09 0x78
+
+# CHECK: ldetr %f15, %f0, 0
+0xb3 0xd4 0x00 0xf0
+
 # CHECK: ldgr %f0, %r0
 0xb3 0xc1 0x00 0x00
 
@@ -6816,6 +7728,24 @@
 # CHECK: ldxr %f15, %f13
 0x25 0xfd
 
+# CHECK: ldxtr %f0, 0, %f0, 0
+0xb3 0xdd 0x00 0x00
+
+# CHECK: ldxtr %f0, 0, %f0, 15
+0xb3 0xdd 0x0f 0x00
+
+# CHECK: ldxtr %f0, 0, %f13, 0
+0xb3 0xdd 0x00 0x0d
+
+# CHECK: ldxtr %f0, 15, %f0, 0
+0xb3 0xdd 0xf0 0x00
+
+# CHECK: ldxtr %f4, 5, %f8, 9
+0xb3 0xdd 0x59 0x48
+
+# CHECK: ldxtr %f13, 0, %f0, 0
+0xb3 0xdd 0x00 0xd0
+
 # CHECK: ldy %f0, -524288
 0xed 0x00 0x00 0x00 0x80 0x65
 
@@ -6915,6 +7845,21 @@
 # CHECK: ledr %f15, %f15
 0x35 0xff
 
+# CHECK: ledtr %f0, 0, %f0, 15
+0xb3 0xd5 0x0f 0x00
+
+# CHECK: ledtr %f0, 0, %f15, 0
+0xb3 0xd5 0x00 0x0f
+
+# CHECK: ledtr %f0, 15, %f0, 0
+0xb3 0xd5 0xf0 0x00
+
+# CHECK: ledtr %f4, 5, %f6, 7
+0xb3 0xd5 0x57 0x46
+
+# CHECK: ledtr %f15, 0, %f0, 0
+0xb3 0xd5 0x00 0xf0
+
 # CHECK: ler %f0, %f9
 0x38 0x09
 
@@ -8703,6 +9648,18 @@
 # CHECK: ltdr %f15, %f9
 0x22 0xf9
 
+# CHECK: ltdtr %f0, %f9
+0xb3 0xd6 0x00 0x09
+
+# CHECK: ltdtr %f0, %f15
+0xb3 0xd6 0x00 0x0f
+
+# CHECK: ltdtr %f15, %f0
+0xb3 0xd6 0x00 0xf0
+
+# CHECK: ltdtr %f15, %f9
+0xb3 0xd6 0x00 0xf9
+
 # CHECK: ltebr %f0, %f9
 0xb3 0x02 0x00 0x09
 
@@ -8847,6 +9804,18 @@
 # CHECK: ltxr %f13, %f9
 0xb3 0x62 0x00 0xd9
 
+# CHECK: ltxtr %f0, %f9
+0xb3 0xde 0x00 0x09
+
+# CHECK: ltxtr %f0, %f13
+0xb3 0xde 0x00 0x0d
+
+# CHECK: ltxtr %f13, %f0
+0xb3 0xde 0x00 0xd0
+
+# CHECK: ltxtr %f13, %f9
+0xb3 0xde 0x00 0xd9
+
 # CHECK: lxd %f0, 4095
 0xed 0x00 0x0f 0xff 0x00 0x25
 
@@ -8910,6 +9879,18 @@
 # CHECK: lxdr %f13, %f15
 0xb3 0x25 0x00 0xdf
 
+# CHECK: lxdtr %f0, %f0, 15
+0xb3 0xdc 0x0f 0x00
+
+# CHECK: lxdtr %f0, %f15, 0
+0xb3 0xdc 0x00 0x0f
+
+# CHECK: lxdtr %f5, %f8, 9
+0xb3 0xdc 0x09 0x58
+
+# CHECK: lxdtr %f13, %f0, 0
+0xb3 0xdc 0x00 0xd0
+
 # CHECK: lxe %f0, 4095
 0xed 0x00 0x0f 0xff 0x00 0x26
 
@@ -9531,6 +10512,39 @@
 # CHECK: mdr %f15, %f0
 0x2c 0xf0
 
+# CHECK: mdtr %f0, %f0, %f0
+0xb3 0xd0 0x00 0x00
+
+# CHECK: mdtr %f0, %f0, %f15
+0xb3 0xd0 0xf0 0x00
+
+# CHECK: mdtr %f0, %f15, %f0
+0xb3 0xd0 0x00 0x0f
+
+# CHECK: mdtr %f15, %f0, %f0
+0xb3 0xd0 0x00 0xf0
+
+# CHECK: mdtr %f7, %f8, %f9
+0xb3 0xd0 0x90 0x78
+
+# CHECK: mdtra %f0, %f0, %f0, 1
+0xb3 0xd0 0x01 0x00
+
+# CHECK: mdtra %f0, %f0, %f0, 15
+0xb3 0xd0 0x0f 0x00
+
+# CHECK: mdtra %f0, %f0, %f15, 1
+0xb3 0xd0 0xf1 0x00
+
+# CHECK: mdtra %f0, %f15, %f0, 1
+0xb3 0xd0 0x01 0x0f
+
+# CHECK: mdtra %f15, %f0, %f0, 1
+0xb3 0xd0 0x01 0xf0
+
+# CHECK: mdtra %f7, %f8, %f9, 10
+0xb3 0xd0 0x9a 0x78
+
 # CHECK: mee %f0, 0
 0xed 0x00 0x00 0x00 0x00 0x37
 
@@ -10737,6 +11751,39 @@
 # CHECK: mxr %f13, %f13
 0x26 0xdd
 
+# CHECK: mxtr %f0, %f0, %f0
+0xb3 0xd8 0x00 0x00
+
+# CHECK: mxtr %f0, %f0, %f13
+0xb3 0xd8 0xd0 0x00
+
+# CHECK: mxtr %f0, %f13, %f0
+0xb3 0xd8 0x00 0x0d
+
+# CHECK: mxtr %f13, %f0, %f0
+0xb3 0xd8 0x00 0xd0
+
+# CHECK: mxtr %f8, %f8, %f8
+0xb3 0xd8 0x80 0x88
+
+# CHECK: mxtra %f0, %f0, %f0, 1
+0xb3 0xd8 0x01 0x00
+
+# CHECK: mxtra %f0, %f0, %f0, 15
+0xb3 0xd8 0x0f 0x00
+
+# CHECK: mxtra %f0, %f0, %f13, 1
+0xb3 0xd8 0xd1 0x00
+
+# CHECK: mxtra %f0, %f13, %f0, 1
+0xb3 0xd8 0x01 0x0d
+
+# CHECK: mxtra %f13, %f0, %f0, 1
+0xb3 0xd8 0x01 0xd0
+
+# CHECK: mxtra %f8, %f8, %f8, 8
+0xb3 0xd8 0x88 0x88
+
 # CHECK: my %f0, %f0, 0
 0xed 0x00 0x00 0x00 0x00 0x3b
 
@@ -11529,6 +12576,9 @@
 # CHECK: pfd 15, 0
 0xe3 0xf0 0x00 0x00 0x00 0x36
 
+# CHECK: pfpo
+0x01 0x0a
+
 # CHECK: pka 0, 0(1)
 0xe9 0x00 0x00 0x00 0x00 0x00
 
@@ -11652,6 +12702,42 @@
 # CHECK: pr
 0x01 0x01
 
+# CHECK: qadtr %f0, %f0, %f0, 0
+0xb3 0xf5 0x00 0x00
+
+# CHECK: qadtr %f0, %f0, %f0, 15
+0xb3 0xf5 0x0f 0x00
+
+# CHECK: qadtr %f0, %f0, %f15, 0
+0xb3 0xf5 0x00 0x0f
+
+# CHECK: qadtr %f0, %f15, %f0, 0
+0xb3 0xf5 0xf0 0x00
+
+# CHECK: qadtr %f4, %f5, %f6, 7
+0xb3 0xf5 0x57 0x46
+
+# CHECK: qadtr %f15, %f0, %f0, 0
+0xb3 0xf5 0x00 0xf0
+
+# CHECK: qaxtr %f0, %f0, %f0, 0
+0xb3 0xfd 0x00 0x00
+
+# CHECK: qaxtr %f0, %f0, %f0, 15
+0xb3 0xfd 0x0f 0x00
+
+# CHECK: qaxtr %f0, %f0, %f13, 0
+0xb3 0xfd 0x00 0x0d
+
+# CHECK: qaxtr %f0, %f13, %f0, 0
+0xb3 0xfd 0xd0 0x00
+
+# CHECK: qaxtr %f8, %f8, %f8, 8
+0xb3 0xfd 0x88 0x88
+
+# CHECK: qaxtr %f13, %f0, %f0, 0
+0xb3 0xfd 0x00 0xd0
+
 # CHECK: risbg %r0, %r0, 0, 0, 0
 0xec 0x00 0x00 0x00 0x00 0x55
 
@@ -11850,6 +12936,42 @@
 # CHECK: rosbg %r4, %r5, 6, 7, 8
 0xec 0x45 0x06 0x07 0x08 0x56
 
+# CHECK: rrdtr %f0, %f0, %f0, 0
+0xb3 0xf7 0x00 0x00
+
+# CHECK: rrdtr %f0, %f0, %f0, 15
+0xb3 0xf7 0x0f 0x00
+
+# CHECK: rrdtr %f0, %f0, %f15, 0
+0xb3 0xf7 0x00 0x0f
+
+# CHECK: rrdtr %f0, %f15, %f0, 0
+0xb3 0xf7 0xf0 0x00
+
+# CHECK: rrdtr %f4, %f5, %f6, 7
+0xb3 0xf7 0x57 0x46
+
+# CHECK: rrdtr %f15, %f0, %f0, 0
+0xb3 0xf7 0x00 0xf0
+
+# CHECK: rrxtr %f0, %f0, %f0, 0
+0xb3 0xff 0x00 0x00
+
+# CHECK: rrxtr %f0, %f0, %f0, 15
+0xb3 0xff 0x0f 0x00
+
+# CHECK: rrxtr %f0, %f0, %f13, 0
+0xb3 0xff 0x00 0x0d
+
+# CHECK: rrxtr %f0, %f13, %f0, 0
+0xb3 0xff 0xd0 0x00
+
+# CHECK: rrxtr %f8, %f8, %f8, 8
+0xb3 0xff 0x88 0x88
+
+# CHECK: rrxtr %f13, %f0, %f0, 0
+0xb3 0xff 0x00 0xd0
+
 # CHECK: rxsbg %r0, %r0, 0, 0, 0
 0xec 0x00 0x00 0x00 0x00 0x57
 
@@ -11982,6 +13104,39 @@
 # CHECK: sdr %f15, %f0
 0x2b 0xf0
 
+# CHECK: sdtr %f0, %f0, %f0
+0xb3 0xd3 0x00 0x00
+
+# CHECK: sdtr %f0, %f0, %f15
+0xb3 0xd3 0xf0 0x00
+
+# CHECK: sdtr %f0, %f15, %f0
+0xb3 0xd3 0x00 0x0f
+
+# CHECK: sdtr %f15, %f0, %f0
+0xb3 0xd3 0x00 0xf0
+
+# CHECK: sdtr %f7, %f8, %f9
+0xb3 0xd3 0x90 0x78
+
+# CHECK: sdtra %f0, %f0, %f0, 1
+0xb3 0xd3 0x01 0x00
+
+# CHECK: sdtra %f0, %f0, %f0, 15
+0xb3 0xd3 0x0f 0x00
+
+# CHECK: sdtra %f0, %f0, %f15, 1
+0xb3 0xd3 0xf1 0x00
+
+# CHECK: sdtra %f0, %f15, %f0, 1
+0xb3 0xd3 0x01 0x0f
+
+# CHECK: sdtra %f15, %f0, %f0, 1
+0xb3 0xd3 0x01 0xf0
+
+# CHECK: sdtra %f7, %f8, %f9, 10
+0xb3 0xd3 0x9a 0x78
+
 # CHECK: se %f0, 0
 0x7b 0x00 0x00 0x00
 
@@ -12456,6 +13611,33 @@
 # CHECK: sldl %r0, 4095(%r15)
 0x8d 0x00 0xff 0xff
 
+# CHECK: sldt %f0, %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x40
+
+# CHECK: sldt %f0, %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x40
+
+# CHECK: sldt %f0, %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x40
+
+# CHECK: sldt %f0, %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x40
+
+# CHECK: sldt %f0, %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x40
+
+# CHECK: sldt %f0, %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x40
+
+# CHECK: sldt %f0, %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x40
+
+# CHECK: sldt %f15, %f0, 0
+0xed 0x00 0x00 0x00 0xf0 0x40
+
+# CHECK: sldt %f15, %f15, 0
+0xed 0xf0 0x00 0x00 0xf0 0x40
+
 # CHECK: slfi %r0, 0
 0xc2 0x05 0x00 0x00 0x00 0x00
 
@@ -12678,6 +13860,33 @@
 # CHECK: slrk %r2, %r3, %r4
 0xb9 0xfb 0x40 0x23
 
+# CHECK: slxt %f0, %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x48
+
+# CHECK: slxt %f0, %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x48
+
+# CHECK: slxt %f0, %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x48
+
+# CHECK: slxt %f0, %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x48
+
+# CHECK: slxt %f0, %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x48
+
+# CHECK: slxt %f0, %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x48
+
+# CHECK: slxt %f0, %f13, 0
+0xed 0xd0 0x00 0x00 0x00 0x48
+
+# CHECK: slxt %f13, %f0, 0
+0xed 0x00 0x00 0x00 0xd0 0x48
+
+# CHECK: slxt %f13, %f13, 0
+0xed 0xd0 0x00 0x00 0xd0 0x48
+
 # CHECK: sly %r0, -524288
 0xe3 0x00 0x00 0x00 0x80 0x5f
 
@@ -13071,6 +14280,33 @@
 # CHECK: srdl %r0, 4095(%r15)
 0x8c 0x00 0xff 0xff
 
+# CHECK: srdt %f0, %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x41
+
+# CHECK: srdt %f0, %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x41
+
+# CHECK: srdt %f0, %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x41
+
+# CHECK: srdt %f0, %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x41
+
+# CHECK: srdt %f0, %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x41
+
+# CHECK: srdt %f0, %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x41
+
+# CHECK: srdt %f0, %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x41
+
+# CHECK: srdt %f15, %f0, 0
+0xed 0x00 0x00 0x00 0xf0 0x41
+
+# CHECK: srdt %f15, %f15, 0
+0xed 0xf0 0x00 0x00 0xf0 0x41
+
 # CHECK: srk %r0, %r0, %r0
 0xb9 0xf9 0x00 0x00
 
@@ -13290,6 +14526,33 @@
 # CHECK: srstu %r7, %r8
 0xb9 0xbe 0x00 0x78
 
+# CHECK: srxt %f0, %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x49
+
+# CHECK: srxt %f0, %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x49
+
+# CHECK: srxt %f0, %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x49
+
+# CHECK: srxt %f0, %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x49
+
+# CHECK: srxt %f0, %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x49
+
+# CHECK: srxt %f0, %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x49
+
+# CHECK: srxt %f0, %f13, 0
+0xed 0xd0 0x00 0x00 0x00 0x49
+
+# CHECK: srxt %f13, %f0, 0
+0xed 0x00 0x00 0x00 0xd0 0x49
+
+# CHECK: srxt %f13, %f13, 0
+0xed 0xd0 0x00 0x00 0xd0 0x49
+
 # CHECK: st %r0, 0
 0x50 0x00 0x00 0x00
 
@@ -14388,6 +15651,39 @@
 # CHECK: sxr %f13, %f0
 0x37 0xd0
 
+# CHECK: sxtr %f0, %f0, %f0
+0xb3 0xdb 0x00 0x00
+
+# CHECK: sxtr %f0, %f0, %f13
+0xb3 0xdb 0xd0 0x00
+
+# CHECK: sxtr %f0, %f13, %f0
+0xb3 0xdb 0x00 0x0d
+
+# CHECK: sxtr %f13, %f0, %f0
+0xb3 0xdb 0x00 0xd0
+
+# CHECK: sxtr %f8, %f8, %f8
+0xb3 0xdb 0x80 0x88
+
+# CHECK: sxtra %f0, %f0, %f0, 1
+0xb3 0xdb 0x01 0x00
+
+# CHECK: sxtra %f0, %f0, %f0, 15
+0xb3 0xdb 0x0f 0x00
+
+# CHECK: sxtra %f0, %f0, %f13, 1
+0xb3 0xdb 0xd1 0x00
+
+# CHECK: sxtra %f0, %f13, %f0, 1
+0xb3 0xdb 0x01 0x0d
+
+# CHECK: sxtra %f13, %f0, %f0, 1
+0xb3 0xdb 0x01 0xd0
+
+# CHECK: sxtra %f8, %f8, %f8, 8
+0xb3 0xdb 0x88 0x88
+
 # CHECK: sy %r0, -524288
 0xe3 0x00 0x00 0x00 0x80 0x5b
 
@@ -14598,6 +15894,132 @@
 # CHECK: tcxb %f13, 0
 0xed 0xd0 0x00 0x00 0x00 0x12
 
+# CHECK: tdcdt %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x54
+
+# CHECK: tdcdt %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x54
+
+# CHECK: tdcdt %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x54
+
+# CHECK: tdcdt %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x54
+
+# CHECK: tdcdt %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x54
+
+# CHECK: tdcdt %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x54
+
+# CHECK: tdcdt %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x54
+
+# CHECK: tdcet %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x50
+
+# CHECK: tdcet %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x50
+
+# CHECK: tdcet %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x50
+
+# CHECK: tdcet %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x50
+
+# CHECK: tdcet %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x50
+
+# CHECK: tdcet %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x50
+
+# CHECK: tdcet %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x50
+
+# CHECK: tdcxt %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x58
+
+# CHECK: tdcxt %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x58
+
+# CHECK: tdcxt %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x58
+
+# CHECK: tdcxt %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x58
+
+# CHECK: tdcxt %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x58
+
+# CHECK: tdcxt %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x58
+
+# CHECK: tdcxt %f13, 0
+0xed 0xd0 0x00 0x00 0x00 0x58
+
+# CHECK: tdgdt %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x55
+
+# CHECK: tdgdt %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x55
+
+# CHECK: tdgdt %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x55
+
+# CHECK: tdgdt %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x55
+
+# CHECK: tdgdt %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x55
+
+# CHECK: tdgdt %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x55
+
+# CHECK: tdgdt %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x55
+
+# CHECK: tdget %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x51
+
+# CHECK: tdget %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x51
+
+# CHECK: tdget %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x51
+
+# CHECK: tdget %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x51
+
+# CHECK: tdget %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x51
+
+# CHECK: tdget %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x51
+
+# CHECK: tdget %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x51
+
+# CHECK: tdgxt %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x59
+
+# CHECK: tdgxt %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x59
+
+# CHECK: tdgxt %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x59
+
+# CHECK: tdgxt %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x59
+
+# CHECK: tdgxt %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x59
+
+# CHECK: tdgxt %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x59
+
+# CHECK: tdgxt %f13, 0
+0xed 0xd0 0x00 0x00 0x00 0x59
+
 # CHECK: tend
 0xb2 0xf8 0x00 0x00
 

Modified: llvm/trunk/test/MC/SystemZ/insn-bad-z13.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/SystemZ/insn-bad-z13.s?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/test/MC/SystemZ/insn-bad-z13.s (original)
+++ llvm/trunk/test/MC/SystemZ/insn-bad-z13.s Tue May 30 05:15:16 2017
@@ -5,6 +5,152 @@
 # RUN: FileCheck < %t %s
 
 #CHECK: error: invalid operand
+#CHECK: cdpt	%f0, 0(1), -1
+#CHECK: error: invalid operand
+#CHECK: cdpt	%f0, 0(1), 16
+#CHECK: error: missing length in address
+#CHECK: cdpt	%f0, 0, 0
+#CHECK: error: missing length in address
+#CHECK: cdpt	%f0, 0(%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cdpt	%f0, 0(0,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cdpt	%f0, 0(257,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cdpt	%f0, -1(1,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cdpt	%f0, 4096(1,%r1), 0
+#CHECK: error: %r0 used in an address
+#CHECK: cdpt	%f0, 0(1,%r0), 0
+#CHECK: error: invalid use of indexed addressing
+#CHECK: cdpt	%f0, 0(%r1,%r2), 0
+#CHECK: error: unknown token in expression
+#CHECK: cdpt	%f0, 0(-), 0
+
+	cdpt	%f0, 0(1), -1
+	cdpt	%f0, 0(1), 16
+	cdpt	%f0, 0, 0
+	cdpt	%f0, 0(%r1), 0
+	cdpt	%f0, 0(0,%r1), 0
+	cdpt	%f0, 0(257,%r1), 0
+	cdpt	%f0, -1(1,%r1), 0
+	cdpt	%f0, 4096(1,%r1), 0
+	cdpt	%f0, 0(1,%r0), 0
+	cdpt	%f0, 0(%r1,%r2), 0
+	cdpt	%f0, 0(-), 0
+
+#CHECK: error: invalid operand
+#CHECK: cpdt	%f0, 0(1), -1
+#CHECK: error: invalid operand
+#CHECK: cpdt	%f0, 0(1), 16
+#CHECK: error: missing length in address
+#CHECK: cpdt	%f0, 0, 0
+#CHECK: error: missing length in address
+#CHECK: cpdt	%f0, 0(%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cpdt	%f0, 0(0,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cpdt	%f0, 0(257,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cpdt	%f0, -1(1,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cpdt	%f0, 4096(1,%r1), 0
+#CHECK: error: %r0 used in an address
+#CHECK: cpdt	%f0, 0(1,%r0), 0
+#CHECK: error: invalid use of indexed addressing
+#CHECK: cpdt	%f0, 0(%r1,%r2), 0
+#CHECK: error: unknown token in expression
+#CHECK: cpdt	%f0, 0(-), 0
+
+	cpdt	%f0, 0(1), -1
+	cpdt	%f0, 0(1), 16
+	cpdt	%f0, 0, 0
+	cpdt	%f0, 0(%r1), 0
+	cpdt	%f0, 0(0,%r1), 0
+	cpdt	%f0, 0(257,%r1), 0
+	cpdt	%f0, -1(1,%r1), 0
+	cpdt	%f0, 4096(1,%r1), 0
+	cpdt	%f0, 0(1,%r0), 0
+	cpdt	%f0, 0(%r1,%r2), 0
+	cpdt	%f0, 0(-), 0
+
+#CHECK: error: invalid operand
+#CHECK: cpxt	%f0, 0(1), -1
+#CHECK: error: invalid operand
+#CHECK: cpxt	%f0, 0(1), 16
+#CHECK: error: missing length in address
+#CHECK: cpxt	%f0, 0, 0
+#CHECK: error: missing length in address
+#CHECK: cpxt	%f0, 0(%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cpxt	%f0, 0(0,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cpxt	%f0, 0(257,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cpxt	%f0, -1(1,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cpxt	%f0, 4096(1,%r1), 0
+#CHECK: error: %r0 used in an address
+#CHECK: cpxt	%f0, 0(1,%r0), 0
+#CHECK: error: invalid use of indexed addressing
+#CHECK: cpxt	%f0, 0(%r1,%r2), 0
+#CHECK: error: unknown token in expression
+#CHECK: cpxt	%f0, 0(-), 0
+#CHECK: error: invalid register pair
+#CHECK: cpxt	%f15, 0(1), 0
+
+	cpxt	%f0, 0(1), -1
+	cpxt	%f0, 0(1), 16
+	cpxt	%f0, 0, 0
+	cpxt	%f0, 0(%r1), 0
+	cpxt	%f0, 0(0,%r1), 0
+	cpxt	%f0, 0(257,%r1), 0
+	cpxt	%f0, -1(1,%r1), 0
+	cpxt	%f0, 4096(1,%r1), 0
+	cpxt	%f0, 0(1,%r0), 0
+	cpxt	%f0, 0(%r1,%r2), 0
+	cpxt	%f0, 0(-), 0
+	cpxt	%f15, 0(1), 0
+
+#CHECK: error: invalid operand
+#CHECK: cxpt	%f0, 0(1), -1
+#CHECK: error: invalid operand
+#CHECK: cxpt	%f0, 0(1), 16
+#CHECK: error: missing length in address
+#CHECK: cxpt	%f0, 0, 0
+#CHECK: error: missing length in address
+#CHECK: cxpt	%f0, 0(%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cxpt	%f0, 0(0,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cxpt	%f0, 0(257,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cxpt	%f0, -1(1,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cxpt	%f0, 4096(1,%r1), 0
+#CHECK: error: %r0 used in an address
+#CHECK: cxpt	%f0, 0(1,%r0), 0
+#CHECK: error: invalid use of indexed addressing
+#CHECK: cxpt	%f0, 0(%r1,%r2), 0
+#CHECK: error: unknown token in expression
+#CHECK: cxpt	%f0, 0(-), 0
+#CHECK: error: invalid register pair
+#CHECK: cxpt	%f15, 0(1), 0
+
+	cxpt	%f0, 0(1), -1
+	cxpt	%f0, 0(1), 16
+	cxpt	%f0, 0, 0
+	cxpt	%f0, 0(%r1), 0
+	cxpt	%f0, 0(0,%r1), 0
+	cxpt	%f0, 0(257,%r1), 0
+	cxpt	%f0, -1(1,%r1), 0
+	cxpt	%f0, 4096(1,%r1), 0
+	cxpt	%f0, 0(1,%r0), 0
+	cxpt	%f0, 0(%r1,%r2), 0
+	cxpt	%f0, 0(-), 0
+	cxpt	%f15, 0(1), 0
+
+#CHECK: error: invalid operand
 #CHECK: lcbb	%r0, 0, -1
 #CHECK: error: invalid operand
 #CHECK: lcbb	%r0, 0, 16

Modified: llvm/trunk/test/MC/SystemZ/insn-bad-z196.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/SystemZ/insn-bad-z196.s?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/test/MC/SystemZ/insn-bad-z196.s (original)
+++ llvm/trunk/test/MC/SystemZ/insn-bad-z196.s Tue May 30 05:15:16 2017
@@ -5,6 +5,14 @@
 # RUN: FileCheck < %t %s
 
 #CHECK: error: invalid operand
+#CHECK: adtra	%f0, %f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: adtra	%f0, %f0, %f0, 16
+
+	adtra	%f0, %f0, %f0, -1
+	adtra	%f0, %f0, %f0, 16
+
+#CHECK: error: invalid operand
 #CHECK: aghik	%r0, %r1, -32769
 #CHECK: error: invalid operand
 #CHECK: aghik	%r0, %r1, 32768
@@ -34,6 +42,23 @@
 	aih	%r0, (-1 << 31) - 1
 	aih	%r0, (1 << 31)
 
+#CHECK: error: invalid operand
+#CHECK: axtra	%f0, %f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: axtra	%f0, %f0, %f0, 16
+#CHECK: error: invalid register pair
+#CHECK: axtra	%f0, %f0, %f2, 0
+#CHECK: error: invalid register pair
+#CHECK: axtra	%f0, %f2, %f0, 0
+#CHECK: error: invalid register pair
+#CHECK: axtra	%f2, %f0, %f0, 0
+
+	axtra	%f0, %f0, %f0, -1
+	axtra	%f0, %f0, %f0, 16
+	axtra	%f0, %f0, %f2, 0
+	axtra	%f0, %f2, %f0, 0
+	axtra	%f2, %f0, %f0, 0
+
 #CHECK: error: instruction requires: execution-hint
 #CHECK: bpp	0, 0, 0
 
@@ -73,6 +98,20 @@
 	cdfbra	%f0, 16, %r0, 0
 
 #CHECK: error: invalid operand
+#CHECK: cdftr	%f0, 0, %r0, -1
+#CHECK: error: invalid operand
+#CHECK: cdftr	%f0, 0, %r0, 16
+#CHECK: error: invalid operand
+#CHECK: cdftr	%f0, -1, %r0, 0
+#CHECK: error: invalid operand
+#CHECK: cdftr	%f0, 16, %r0, 0
+
+	cdftr	%f0, 0, %r0, -1
+	cdftr	%f0, 0, %r0, 16
+	cdftr	%f0, -1, %r0, 0
+	cdftr	%f0, 16, %r0, 0
+
+#CHECK: error: invalid operand
 #CHECK: cdgbra	%f0, 0, %r0, -1
 #CHECK: error: invalid operand
 #CHECK: cdgbra	%f0, 0, %r0, 16
@@ -87,6 +126,20 @@
 	cdgbra	%f0, 16, %r0, 0
 
 #CHECK: error: invalid operand
+#CHECK: cdgtra	%f0, 0, %r0, -1
+#CHECK: error: invalid operand
+#CHECK: cdgtra	%f0, 0, %r0, 16
+#CHECK: error: invalid operand
+#CHECK: cdgtra	%f0, -1, %r0, 0
+#CHECK: error: invalid operand
+#CHECK: cdgtra	%f0, 16, %r0, 0
+
+	cdgtra	%f0, 0, %r0, -1
+	cdgtra	%f0, 0, %r0, 16
+	cdgtra	%f0, -1, %r0, 0
+	cdgtra	%f0, 16, %r0, 0
+
+#CHECK: error: invalid operand
 #CHECK: cdlfbr	%f0, 0, %r0, -1
 #CHECK: error: invalid operand
 #CHECK: cdlfbr	%f0, 0, %r0, 16
@@ -101,6 +154,25 @@
 	cdlfbr	%f0, 16, %r0, 0
 
 #CHECK: error: invalid operand
+#CHECK: cdlftr	%f0, 0, %r0, -1
+#CHECK: error: invalid operand
+#CHECK: cdlftr	%f0, 0, %r0, 16
+#CHECK: error: invalid operand
+#CHECK: cdlftr	%f0, -1, %r0, 0
+#CHECK: error: invalid operand
+#CHECK: cdlftr	%f0, 16, %r0, 0
+
+	cdlftr	%f0, 0, %r0, -1
+	cdlftr	%f0, 0, %r0, 16
+	cdlftr	%f0, -1, %r0, 0
+	cdlftr	%f0, 16, %r0, 0
+
+#CHECK: error: instruction requires: dfp-zoned-conversion
+#CHECK: cdzt	%f0, 0(1), 0
+
+	cdzt	%f0, 0(1), 0
+
+#CHECK: error: invalid operand
 #CHECK: cdlgbr	%f0, 0, %r0, -1
 #CHECK: error: invalid operand
 #CHECK: cdlgbr	%f0, 0, %r0, 16
@@ -115,6 +187,20 @@
 	cdlgbr	%f0, 16, %r0, 0
 
 #CHECK: error: invalid operand
+#CHECK: cdlgtr	%f0, 0, %r0, -1
+#CHECK: error: invalid operand
+#CHECK: cdlgtr	%f0, 0, %r0, 16
+#CHECK: error: invalid operand
+#CHECK: cdlgtr	%f0, -1, %r0, 0
+#CHECK: error: invalid operand
+#CHECK: cdlgtr	%f0, 16, %r0, 0
+
+	cdlgtr	%f0, 0, %r0, -1
+	cdlgtr	%f0, 0, %r0, 16
+	cdlgtr	%f0, -1, %r0, 0
+	cdlgtr	%f0, 16, %r0, 0
+
+#CHECK: error: invalid operand
 #CHECK: cefbra	%f0, 0, %r0, -1
 #CHECK: error: invalid operand
 #CHECK: cefbra	%f0, 0, %r0, 16
@@ -185,6 +271,20 @@
 	cfdbra	%r0, 16, %f0, 0
 
 #CHECK: error: invalid operand
+#CHECK: cfdtr	%r0, 0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: cfdtr	%r0, 0, %f0, 16
+#CHECK: error: invalid operand
+#CHECK: cfdtr	%r0, -1, %f0, 0
+#CHECK: error: invalid operand
+#CHECK: cfdtr	%r0, 16, %f0, 0
+
+	cfdtr	%r0, 0, %f0, -1
+	cfdtr	%r0, 0, %f0, 16
+	cfdtr	%r0, -1, %f0, 0
+	cfdtr	%r0, 16, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: cfebra	%r0, 0, %f0, -1
 #CHECK: error: invalid operand
 #CHECK: cfebra	%r0, 0, %f0, 16
@@ -216,6 +316,23 @@
 	cfxbra	%r0, 0, %f14, 0
 
 #CHECK: error: invalid operand
+#CHECK: cfxtr	%r0, 0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: cfxtr	%r0, 0, %f0, 16
+#CHECK: error: invalid operand
+#CHECK: cfxtr	%r0, -1, %f0, 0
+#CHECK: error: invalid operand
+#CHECK: cfxtr	%r0, 16, %f0, 0
+#CHECK: error: invalid register pair
+#CHECK: cfxtr	%r0, 0, %f14, 0
+
+	cfxtr	%r0, 0, %f0, -1
+	cfxtr	%r0, 0, %f0, 16
+	cfxtr	%r0, -1, %f0, 0
+	cfxtr	%r0, 16, %f0, 0
+	cfxtr	%r0, 0, %f14, 0
+
+#CHECK: error: invalid operand
 #CHECK: cgdbra	%r0, 0, %f0, -1
 #CHECK: error: invalid operand
 #CHECK: cgdbra	%r0, 0, %f0, 16
@@ -230,6 +347,20 @@
 	cgdbra	%r0, 16, %f0, 0
 
 #CHECK: error: invalid operand
+#CHECK: cgdtra	%r0, 0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: cgdtra	%r0, 0, %f0, 16
+#CHECK: error: invalid operand
+#CHECK: cgdtra	%r0, -1, %f0, 0
+#CHECK: error: invalid operand
+#CHECK: cgdtra	%r0, 16, %f0, 0
+
+	cgdtra	%r0, 0, %f0, -1
+	cgdtra	%r0, 0, %f0, 16
+	cgdtra	%r0, -1, %f0, 0
+	cgdtra	%r0, 16, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: cgebra	%r0, 0, %f0, -1
 #CHECK: error: invalid operand
 #CHECK: cgebra	%r0, 0, %f0, 16
@@ -261,6 +392,23 @@
 	cgxbra	%r0, 0, %f14, 0
 
 #CHECK: error: invalid operand
+#CHECK: cgxtra	%r0, 0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: cgxtra	%r0, 0, %f0, 16
+#CHECK: error: invalid operand
+#CHECK: cgxtra	%r0, -1, %f0, 0
+#CHECK: error: invalid operand
+#CHECK: cgxtra	%r0, 16, %f0, 0
+#CHECK: error: invalid register pair
+#CHECK: cgxtra	%r0, 0, %f14, 0
+
+	cgxtra	%r0, 0, %f0, -1
+	cgxtra	%r0, 0, %f0, 16
+	cgxtra	%r0, -1, %f0, 0
+	cgxtra	%r0, 16, %f0, 0
+	cgxtra	%r0, 0, %f14, 0
+
+#CHECK: error: invalid operand
 #CHECK: chf	%r0, -524289
 #CHECK: error: invalid operand
 #CHECK: chf	%r0, 524288
@@ -291,6 +439,20 @@
 	clfdbr	%r0, 16, %f0, 0
 
 #CHECK: error: invalid operand
+#CHECK: clfdtr	%r0, 0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: clfdtr	%r0, 0, %f0, 16
+#CHECK: error: invalid operand
+#CHECK: clfdtr	%r0, -1, %f0, 0
+#CHECK: error: invalid operand
+#CHECK: clfdtr	%r0, 16, %f0, 0
+
+	clfdtr	%r0, 0, %f0, -1
+	clfdtr	%r0, 0, %f0, 16
+	clfdtr	%r0, -1, %f0, 0
+	clfdtr	%r0, 16, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: clfebr	%r0, 0, %f0, -1
 #CHECK: error: invalid operand
 #CHECK: clfebr	%r0, 0, %f0, 16
@@ -322,6 +484,23 @@
 	clfxbr	%r0, 0, %f14, 0
 
 #CHECK: error: invalid operand
+#CHECK: clfxtr	%r0, 0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: clfxtr	%r0, 0, %f0, 16
+#CHECK: error: invalid operand
+#CHECK: clfxtr	%r0, -1, %f0, 0
+#CHECK: error: invalid operand
+#CHECK: clfxtr	%r0, 16, %f0, 0
+#CHECK: error: invalid register pair
+#CHECK: clfxtr	%r0, 0, %f14, 0
+
+	clfxtr	%r0, 0, %f0, -1
+	clfxtr	%r0, 0, %f0, 16
+	clfxtr	%r0, -1, %f0, 0
+	clfxtr	%r0, 16, %f0, 0
+	clfxtr	%r0, 0, %f14, 0
+
+#CHECK: error: invalid operand
 #CHECK: clgdbr	%r0, 0, %f0, -1
 #CHECK: error: invalid operand
 #CHECK: clgdbr	%r0, 0, %f0, 16
@@ -336,6 +515,20 @@
 	clgdbr	%r0, 16, %f0, 0
 
 #CHECK: error: invalid operand
+#CHECK: clgdtr	%r0, 0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: clgdtr	%r0, 0, %f0, 16
+#CHECK: error: invalid operand
+#CHECK: clgdtr	%r0, -1, %f0, 0
+#CHECK: error: invalid operand
+#CHECK: clgdtr	%r0, 16, %f0, 0
+
+	clgdtr	%r0, 0, %f0, -1
+	clgdtr	%r0, 0, %f0, 16
+	clgdtr	%r0, -1, %f0, 0
+	clgdtr	%r0, 16, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: clgebr	%r0, 0, %f0, -1
 #CHECK: error: invalid operand
 #CHECK: clgebr	%r0, 0, %f0, 16
@@ -367,6 +560,23 @@
 	clgxbr	%r0, 0, %f14, 0
 
 #CHECK: error: invalid operand
+#CHECK: clgxtr	%r0, 0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: clgxtr	%r0, 0, %f0, 16
+#CHECK: error: invalid operand
+#CHECK: clgxtr	%r0, -1, %f0, 0
+#CHECK: error: invalid operand
+#CHECK: clgxtr	%r0, 16, %f0, 0
+#CHECK: error: invalid register pair
+#CHECK: clgxtr	%r0, 0, %f14, 0
+
+	clgxtr	%r0, 0, %f0, -1
+	clgxtr	%r0, 0, %f0, 16
+	clgxtr	%r0, -1, %f0, 0
+	clgxtr	%r0, 16, %f0, 0
+	clgxtr	%r0, 0, %f14, 0
+
+#CHECK: error: invalid operand
 #CHECK: clhf	%r0, -524289
 #CHECK: error: invalid operand
 #CHECK: clhf	%r0, 524288
@@ -400,6 +610,23 @@
 	cxfbra	%f2, 0, %r0, 0
 
 #CHECK: error: invalid operand
+#CHECK: cxftr	%f0, 0, %r0, -1
+#CHECK: error: invalid operand
+#CHECK: cxftr	%f0, 0, %r0, 16
+#CHECK: error: invalid operand
+#CHECK: cxftr	%f0, -1, %r0, 0
+#CHECK: error: invalid operand
+#CHECK: cxftr	%f0, 16, %r0, 0
+#CHECK: error: invalid register pair
+#CHECK: cxftr	%f2, 0, %r0, 0
+
+	cxftr	%f0, 0, %r0, -1
+	cxftr	%f0, 0, %r0, 16
+	cxftr	%f0, -1, %r0, 0
+	cxftr	%f0, 16, %r0, 0
+	cxftr	%f2, 0, %r0, 0
+
+#CHECK: error: invalid operand
 #CHECK: cxgbra	%f0, 0, %r0, -1
 #CHECK: error: invalid operand
 #CHECK: cxgbra	%f0, 0, %r0, 16
@@ -417,6 +644,23 @@
 	cxgbra	%f2, 0, %r0, 0
 
 #CHECK: error: invalid operand
+#CHECK: cxgtra	%f0, 0, %r0, -1
+#CHECK: error: invalid operand
+#CHECK: cxgtra	%f0, 0, %r0, 16
+#CHECK: error: invalid operand
+#CHECK: cxgtra	%f0, -1, %r0, 0
+#CHECK: error: invalid operand
+#CHECK: cxgtra	%f0, 16, %r0, 0
+#CHECK: error: invalid register pair
+#CHECK: cxgtra	%f2, 0, %r0, 0
+
+	cxgtra	%f0, 0, %r0, -1
+	cxgtra	%f0, 0, %r0, 16
+	cxgtra	%f0, -1, %r0, 0
+	cxgtra	%f0, 16, %r0, 0
+	cxgtra	%f2, 0, %r0, 0
+
+#CHECK: error: invalid operand
 #CHECK: cxlfbr	%f0, 0, %r0, -1
 #CHECK: error: invalid operand
 #CHECK: cxlfbr	%f0, 0, %r0, 16
@@ -434,6 +678,23 @@
 	cxlfbr	%f2, 0, %r0, 0
 
 #CHECK: error: invalid operand
+#CHECK: cxlftr	%f0, 0, %r0, -1
+#CHECK: error: invalid operand
+#CHECK: cxlftr	%f0, 0, %r0, 16
+#CHECK: error: invalid operand
+#CHECK: cxlftr	%f0, -1, %r0, 0
+#CHECK: error: invalid operand
+#CHECK: cxlftr	%f0, 16, %r0, 0
+#CHECK: error: invalid register pair
+#CHECK: cxlftr	%f2, 0, %r0, 0
+
+	cxlftr	%f0, 0, %r0, -1
+	cxlftr	%f0, 0, %r0, 16
+	cxlftr	%f0, -1, %r0, 0
+	cxlftr	%f0, 16, %r0, 0
+	cxlftr	%f2, 0, %r0, 0
+
+#CHECK: error: invalid operand
 #CHECK: cxlgbr	%f0, 0, %r0, -1
 #CHECK: error: invalid operand
 #CHECK: cxlgbr	%f0, 0, %r0, 16
@@ -450,6 +711,63 @@
 	cxlgbr	%f0, 16, %r0, 0
 	cxlgbr	%f2, 0, %r0, 0
 
+#CHECK: error: invalid operand
+#CHECK: cxlgtr	%f0, 0, %r0, -1
+#CHECK: error: invalid operand
+#CHECK: cxlgtr	%f0, 0, %r0, 16
+#CHECK: error: invalid operand
+#CHECK: cxlgtr	%f0, -1, %r0, 0
+#CHECK: error: invalid operand
+#CHECK: cxlgtr	%f0, 16, %r0, 0
+#CHECK: error: invalid register pair
+#CHECK: cxlgtr	%f2, 0, %r0, 0
+
+	cxlgtr	%f0, 0, %r0, -1
+	cxlgtr	%f0, 0, %r0, 16
+	cxlgtr	%f0, -1, %r0, 0
+	cxlgtr	%f0, 16, %r0, 0
+	cxlgtr	%f2, 0, %r0, 0
+
+#CHECK: error: instruction requires: dfp-zoned-conversion
+#CHECK: cxzt	%f0, 0(1), 0
+
+	cxzt	%f0, 0(1), 0
+
+#CHECK: error: instruction requires: dfp-zoned-conversion
+#CHECK: czdt	%f0, 0(1), 0
+
+	czdt	%f0, 0(1), 0
+
+#CHECK: error: instruction requires: dfp-zoned-conversion
+#CHECK: czxt	%f0, 0(1), 0
+
+	czxt	%f0, 0(1), 0
+
+#CHECK: error: invalid operand
+#CHECK: ddtra	%f0, %f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: ddtra	%f0, %f0, %f0, 16
+
+	ddtra	%f0, %f0, %f0, -1
+	ddtra	%f0, %f0, %f0, 16
+
+#CHECK: error: invalid operand
+#CHECK: dxtra	%f0, %f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: dxtra	%f0, %f0, %f0, 16
+#CHECK: error: invalid register pair
+#CHECK: dxtra	%f0, %f0, %f2, 0
+#CHECK: error: invalid register pair
+#CHECK: dxtra	%f0, %f2, %f0, 0
+#CHECK: error: invalid register pair
+#CHECK: dxtra	%f2, %f0, %f0, 0
+
+	dxtra	%f0, %f0, %f0, -1
+	dxtra	%f0, %f0, %f0, 16
+	dxtra	%f0, %f0, %f2, 0
+	dxtra	%f0, %f2, %f0, 0
+	dxtra	%f2, %f0, %f0, 0
+
 #CHECK: error: instruction requires: transactional-execution
 #CHECK: etnd	%r7
 
@@ -824,6 +1142,31 @@
 	lpdg	%r2, 0(%r1), -1(%r15)
 	lpdg	%r2, 0(%r1), 4096(%r15)
 
+#CHECK: error: invalid operand
+#CHECK: mdtra	%f0, %f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: mdtra	%f0, %f0, %f0, 16
+
+	mdtra	%f0, %f0, %f0, -1
+	mdtra	%f0, %f0, %f0, 16
+
+#CHECK: error: invalid operand
+#CHECK: mxtra	%f0, %f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: mxtra	%f0, %f0, %f0, 16
+#CHECK: error: invalid register pair
+#CHECK: mxtra	%f0, %f0, %f2, 0
+#CHECK: error: invalid register pair
+#CHECK: mxtra	%f0, %f2, %f0, 0
+#CHECK: error: invalid register pair
+#CHECK: mxtra	%f2, %f0, %f0, 0
+
+	mxtra	%f0, %f0, %f0, -1
+	mxtra	%f0, %f0, %f0, 16
+	mxtra	%f0, %f0, %f2, 0
+	mxtra	%f0, %f2, %f0, 0
+	mxtra	%f2, %f0, %f0, 0
+
 #CHECK: error: instruction requires: execution-hint
 #CHECK: niai	0, 0
 
@@ -885,6 +1228,14 @@
 	risblg	%r0,%r0,256,0,0
 
 #CHECK: error: invalid operand
+#CHECK: sdtra	%f0, %f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: sdtra	%f0, %f0, %f0, 16
+
+	sdtra	%f0, %f0, %f0, -1
+	sdtra	%f0, %f0, %f0, 16
+
+#CHECK: error: invalid operand
 #CHECK: slak	%r0,%r0,-524289
 #CHECK: error: invalid operand
 #CHECK: slak	%r0,%r0,524288
@@ -1009,6 +1360,23 @@
 	stocg	%r0,524288,1
 	stocg	%r0,0(%r1,%r2),1
 
+#CHECK: error: invalid operand
+#CHECK: sxtra	%f0, %f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: sxtra	%f0, %f0, %f0, 16
+#CHECK: error: invalid register pair
+#CHECK: sxtra	%f0, %f0, %f2, 0
+#CHECK: error: invalid register pair
+#CHECK: sxtra	%f0, %f2, %f0, 0
+#CHECK: error: invalid register pair
+#CHECK: sxtra	%f2, %f0, %f0, 0
+
+	sxtra	%f0, %f0, %f0, -1
+	sxtra	%f0, %f0, %f0, 16
+	sxtra	%f0, %f0, %f2, 0
+	sxtra	%f0, %f2, %f0, 0
+	sxtra	%f2, %f0, %f0, 0
+
 #CHECK: error: instruction requires: transactional-execution
 #CHECK: tabort	4095(%r1)
 

Modified: llvm/trunk/test/MC/SystemZ/insn-bad-zEC12.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/SystemZ/insn-bad-zEC12.s?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/test/MC/SystemZ/insn-bad-zEC12.s (original)
+++ llvm/trunk/test/MC/SystemZ/insn-bad-zEC12.s Tue May 30 05:15:16 2017
@@ -62,6 +62,46 @@
 	bprp	0, 0, 1
 	bprp	0, 0, 0x1000000
 
+#CHECK: error: instruction requires: dfp-packed-conversion
+#CHECK: cdpt	%f0, 0(1), 0
+
+	cdpt	%f0, 0(1), 0
+
+#CHECK: error: invalid operand
+#CHECK: cdzt	%f0, 0(1), -1
+#CHECK: error: invalid operand
+#CHECK: cdzt	%f0, 0(1), 16
+#CHECK: error: missing length in address
+#CHECK: cdzt	%f0, 0, 0
+#CHECK: error: missing length in address
+#CHECK: cdzt	%f0, 0(%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cdzt	%f0, 0(0,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cdzt	%f0, 0(257,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cdzt	%f0, -1(1,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cdzt	%f0, 4096(1,%r1), 0
+#CHECK: error: %r0 used in an address
+#CHECK: cdzt	%f0, 0(1,%r0), 0
+#CHECK: error: invalid use of indexed addressing
+#CHECK: cdzt	%f0, 0(%r1,%r2), 0
+#CHECK: error: unknown token in expression
+#CHECK: cdzt	%f0, 0(-), 0
+
+	cdzt	%f0, 0(1), -1
+	cdzt	%f0, 0(1), 16
+	cdzt	%f0, 0, 0
+	cdzt	%f0, 0(%r1), 0
+	cdzt	%f0, 0(0,%r1), 0
+	cdzt	%f0, 0(257,%r1), 0
+	cdzt	%f0, -1(1,%r1), 0
+	cdzt	%f0, 4096(1,%r1), 0
+	cdzt	%f0, 0(1,%r0), 0
+	cdzt	%f0, 0(%r1,%r2), 0
+	cdzt	%f0, 0(-), 0
+
 #CHECK: error: invalid operand
 #CHECK: clgt	%r0, -1, 0
 #CHECK: error: invalid operand
@@ -112,6 +152,132 @@
         cltno   %r0, 0
         clto    %r0, 0
 
+#CHECK: error: instruction requires: dfp-packed-conversion
+#CHECK: cpdt	%f0, 0(1), 0
+
+	cpdt	%f0, 0(1), 0
+
+#CHECK: error: instruction requires: dfp-packed-conversion
+#CHECK: cpxt	%f0, 0(1), 0
+
+	cpxt	%f0, 0(1), 0
+
+#CHECK: error: instruction requires: dfp-packed-conversion
+#CHECK: cxpt	%f0, 0(1), 0
+
+	cxpt	%f0, 0(1), 0
+
+#CHECK: error: invalid operand
+#CHECK: cxzt	%f0, 0(1), -1
+#CHECK: error: invalid operand
+#CHECK: cxzt	%f0, 0(1), 16
+#CHECK: error: missing length in address
+#CHECK: cxzt	%f0, 0, 0
+#CHECK: error: missing length in address
+#CHECK: cxzt	%f0, 0(%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cxzt	%f0, 0(0,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cxzt	%f0, 0(257,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cxzt	%f0, -1(1,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: cxzt	%f0, 4096(1,%r1), 0
+#CHECK: error: %r0 used in an address
+#CHECK: cxzt	%f0, 0(1,%r0), 0
+#CHECK: error: invalid use of indexed addressing
+#CHECK: cxzt	%f0, 0(%r1,%r2), 0
+#CHECK: error: unknown token in expression
+#CHECK: cxzt	%f0, 0(-), 0
+#CHECK: error: invalid register pair
+#CHECK: cxzt	%f15, 0(1), 0
+
+	cxzt	%f0, 0(1), -1
+	cxzt	%f0, 0(1), 16
+	cxzt	%f0, 0, 0
+	cxzt	%f0, 0(%r1), 0
+	cxzt	%f0, 0(0,%r1), 0
+	cxzt	%f0, 0(257,%r1), 0
+	cxzt	%f0, -1(1,%r1), 0
+	cxzt	%f0, 4096(1,%r1), 0
+	cxzt	%f0, 0(1,%r0), 0
+	cxzt	%f0, 0(%r1,%r2), 0
+	cxzt	%f0, 0(-), 0
+	cxzt	%f15, 0(1), 0
+
+#CHECK: error: invalid operand
+#CHECK: czdt	%f0, 0(1), -1
+#CHECK: error: invalid operand
+#CHECK: czdt	%f0, 0(1), 16
+#CHECK: error: missing length in address
+#CHECK: czdt	%f0, 0, 0
+#CHECK: error: missing length in address
+#CHECK: czdt	%f0, 0(%r1), 0
+#CHECK: error: invalid operand
+#CHECK: czdt	%f0, 0(0,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: czdt	%f0, 0(257,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: czdt	%f0, -1(1,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: czdt	%f0, 4096(1,%r1), 0
+#CHECK: error: %r0 used in an address
+#CHECK: czdt	%f0, 0(1,%r0), 0
+#CHECK: error: invalid use of indexed addressing
+#CHECK: czdt	%f0, 0(%r1,%r2), 0
+#CHECK: error: unknown token in expression
+#CHECK: czdt	%f0, 0(-), 0
+
+	czdt	%f0, 0(1), -1
+	czdt	%f0, 0(1), 16
+	czdt	%f0, 0, 0
+	czdt	%f0, 0(%r1), 0
+	czdt	%f0, 0(0,%r1), 0
+	czdt	%f0, 0(257,%r1), 0
+	czdt	%f0, -1(1,%r1), 0
+	czdt	%f0, 4096(1,%r1), 0
+	czdt	%f0, 0(1,%r0), 0
+	czdt	%f0, 0(%r1,%r2), 0
+	czdt	%f0, 0(-), 0
+
+#CHECK: error: invalid operand
+#CHECK: czxt	%f0, 0(1), -1
+#CHECK: error: invalid operand
+#CHECK: czxt	%f0, 0(1), 16
+#CHECK: error: missing length in address
+#CHECK: czxt	%f0, 0, 0
+#CHECK: error: missing length in address
+#CHECK: czxt	%f0, 0(%r1), 0
+#CHECK: error: invalid operand
+#CHECK: czxt	%f0, 0(0,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: czxt	%f0, 0(257,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: czxt	%f0, -1(1,%r1), 0
+#CHECK: error: invalid operand
+#CHECK: czxt	%f0, 4096(1,%r1), 0
+#CHECK: error: %r0 used in an address
+#CHECK: czxt	%f0, 0(1,%r0), 0
+#CHECK: error: invalid use of indexed addressing
+#CHECK: czxt	%f0, 0(%r1,%r2), 0
+#CHECK: error: unknown token in expression
+#CHECK: czxt	%f0, 0(-), 0
+#CHECK: error: invalid register pair
+#CHECK: czxt	%f15, 0(1), 0
+
+	czxt	%f0, 0(1), -1
+	czxt	%f0, 0(1), 16
+	czxt	%f0, 0, 0
+	czxt	%f0, 0(%r1), 0
+	czxt	%f0, 0(0,%r1), 0
+	czxt	%f0, 0(257,%r1), 0
+	czxt	%f0, -1(1,%r1), 0
+	czxt	%f0, 4096(1,%r1), 0
+	czxt	%f0, 0(1,%r0), 0
+	czxt	%f0, 0(%r1,%r2), 0
+	czxt	%f0, 0(-), 0
+	czxt	%f15, 0(1), 0
+
 #CHECK: error: invalid operand
 #CHECK: lat	%r0, -524289
 #CHECK: error: invalid operand

Modified: llvm/trunk/test/MC/SystemZ/insn-bad.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/SystemZ/insn-bad.s?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/test/MC/SystemZ/insn-bad.s (original)
+++ llvm/trunk/test/MC/SystemZ/insn-bad.s Tue May 30 05:15:16 2017
@@ -28,6 +28,11 @@
 	adb	%f0, -1
 	adb	%f0, 4096
 
+#CHECK: error: instruction requires: fp-extension
+#CHECK: adtra	%f0, %f0, %f0, 0
+
+	adtra	%f0, %f0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: ae	%f0, -1
 #CHECK: error: invalid operand
@@ -376,6 +381,22 @@
 	axr	%f0, %f2
 	axr	%f2, %f0
 
+#CHECK: error: invalid register pair
+#CHECK: axtr	%f0, %f0, %f2
+#CHECK: error: invalid register pair
+#CHECK: axtr	%f0, %f2, %f0
+#CHECK: error: invalid register pair
+#CHECK: axtr	%f2, %f0, %f0
+
+	axtr	%f0, %f0, %f2
+	axtr	%f0, %f2, %f0
+	axtr	%f2, %f0, %f0
+
+#CHECK: error: instruction requires: fp-extension
+#CHECK: axtra	%f0, %f0, %f0, 0
+
+	axtra	%f0, %f0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: ay	%r0, -524289
 #CHECK: error: invalid operand
@@ -673,20 +694,40 @@
 	cdfbra	%f0, 0, %r0, 0
 
 #CHECK: error: instruction requires: fp-extension
+#CHECK: cdftr	%f0, 0, %r0, 0
+
+	cdftr	%f0, 0, %r0, 0
+
+#CHECK: error: instruction requires: fp-extension
 #CHECK: cdgbra	%f0, 0, %r0, 0
 
 	cdgbra	%f0, 0, %r0, 0
 
 #CHECK: error: instruction requires: fp-extension
+#CHECK: cdgtra	%f0, 0, %r0, 0
+
+	cdgtra	%f0, 0, %r0, 0
+
+#CHECK: error: instruction requires: fp-extension
 #CHECK: cdlfbr	%f0, 0, %r0, 0
 
 	cdlfbr	%f0, 0, %r0, 0
 
 #CHECK: error: instruction requires: fp-extension
+#CHECK: cdlftr	%f0, 0, %r0, 0
+
+	cdlftr	%f0, 0, %r0, 0
+
+#CHECK: error: instruction requires: fp-extension
 #CHECK: cdlgbr	%f0, 0, %r0, 0
 
 	cdlgbr	%f0, 0, %r0, 0
 
+#CHECK: error: instruction requires: fp-extension
+#CHECK: cdlgtr	%f0, 0, %r0, 0
+
+	cdlgtr	%f0, 0, %r0, 0
+
 #CHECK: error: invalid register pair
 #CHECK: cds	%r1, %r0, 0
 #CHECK: error: invalid register pair
@@ -774,6 +815,14 @@
 
 	celgbr	%f0, 0, %r0, 0
 
+#CHECK: error: invalid register pair
+#CHECK: cextr	%f0, %f2
+#CHECK: error: invalid register pair
+#CHECK: cextr	%f2, %f0
+
+	cextr	%f0, %f2
+	cextr	%f2, %f0
+
 #CHECK: error: invalid operand
 #CHECK: cfc	-1
 #CHECK: error: invalid operand
@@ -798,6 +847,11 @@
 
 	cfdbra	%r0, 0, %f0, 0
 
+#CHECK: error: instruction requires: fp-extension
+#CHECK: cfdtr	%r0, 0, %f0, 0
+
+	cfdtr	%r0, 0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: cfebr	%r0, -1, %f0
 #CHECK: error: invalid operand
@@ -835,6 +889,11 @@
 
 	cfxbra	%r0, 0, %f0, 0
 
+#CHECK: error: instruction requires: fp-extension
+#CHECK: cfxtr	%r0, 0, %f0, 0
+
+	cfxtr	%r0, 0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: cfxr	%r0, -1, %f0
 #CHECK: error: invalid operand
@@ -868,6 +927,19 @@
 	cgdbra	%r0, 0, %f0, 0
 
 #CHECK: error: invalid operand
+#CHECK: cgdtr	%r0, -1, %f0
+#CHECK: error: invalid operand
+#CHECK: cgdtr	%r0, 16, %f0
+
+	cgdtr	%r0, -1, %f0
+	cgdtr	%r0, 16, %f0
+
+#CHECK: error: instruction requires: fp-extension
+#CHECK: cgdtra	%r0, 0, %f0, 0
+
+	cgdtra	%r0, 0, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: cgebr	%r0, -1, %f0
 #CHECK: error: invalid operand
 #CHECK: cgebr	%r0, 16, %f0
@@ -1065,6 +1137,22 @@
 	cgxbra	%r0, 0, %f0, 0
 
 #CHECK: error: invalid operand
+#CHECK: cgxtr	%r0, -1, %f0
+#CHECK: error: invalid operand
+#CHECK: cgxtr	%r0, 16, %f0
+#CHECK: error: invalid register pair
+#CHECK: cgxtr	%r0, 0, %f2
+
+	cgxtr	%r0, -1, %f0
+	cgxtr	%r0, 16, %f0
+	cgxtr	%r0, 0, %f2
+
+#CHECK: error: instruction requires: fp-extension
+#CHECK: cgxtra	%r0, 0, %f0, 0
+
+	cgxtra	%r0, 0, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: cgxr	%r0, -1, %f0
 #CHECK: error: invalid operand
 #CHECK: cgxr	%r0, 16, %f0
@@ -1303,6 +1391,11 @@
 	clfdbr	%r0, 0, %f0, 0
 
 #CHECK: error: instruction requires: fp-extension
+#CHECK: clfdtr	%r0, 0, %f0, 0
+
+	clfdtr	%r0, 0, %f0, 0
+
+#CHECK: error: instruction requires: fp-extension
 #CHECK: clfebr	%r0, 0, %f0, 0
 
 	clfebr	%r0, 0, %f0, 0
@@ -1351,6 +1444,11 @@
 
 	clfxbr	%r0, 0, %f0, 0
 
+#CHECK: error: instruction requires: fp-extension
+#CHECK: clfxtr	%r0, 0, %f0, 0
+
+	clfxtr	%r0, 0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: clg	%r0, -524289
 #CHECK: error: invalid operand
@@ -1365,6 +1463,11 @@
 	clgdbr	%r0, 0, %f0, 0
 
 #CHECK: error: instruction requires: fp-extension
+#CHECK: clgdtr	%r0, 0, %f0, 0
+
+	clgdtr	%r0, 0, %f0, 0
+
+#CHECK: error: instruction requires: fp-extension
 #CHECK: clgebr	%r0, 0, %f0, 0
 
 	clgebr	%r0, 0, %f0, 0
@@ -1515,6 +1618,11 @@
 
 	clgxbr	%r0, 0, %f0, 0
 
+#CHECK: error: instruction requires: fp-extension
+#CHECK: clgxtr	%r0, 0, %f0, 0
+
+	clgxtr	%r0, 0, %f0, 0
+
 #CHECK: error: instruction requires: high-word
 #CHECK: clhf	%r0, 0
 
@@ -1831,6 +1939,14 @@
 	cs	%r0, %r0, 0(%r1,%r2)
 
 #CHECK: error: invalid operand
+#CHECK: csdtr	%r0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: csdtr	%r0, %f0, 16
+
+	csdtr	%r0, %f0, -1
+	csdtr	%r0, %f0, 16
+
+#CHECK: error: invalid operand
 #CHECK: csg	%r0, %r0, -524289
 #CHECK: error: invalid operand
 #CHECK: csg	%r0, %r0, 524288
@@ -1859,6 +1975,20 @@
         csst	0(%r1), 4096(%r15), %r2
 
 #CHECK: error: invalid operand
+#CHECK: csxtr	%r0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: csxtr	%r0, %f0, 16
+#CHECK: error: invalid register pair
+#CHECK: csxtr	%r0, %f2, 0
+#CHECK: error: invalid register pair
+#CHECK: csxtr	%r1, %f0, 0
+
+	csxtr	%r0, %f0, -1
+	csxtr	%r0, %f0, 16
+	csxtr	%r0, %f2, 0
+	csxtr	%r1, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: csy	%r0, %r0, -524289
 #CHECK: error: invalid operand
 #CHECK: csy	%r0, %r0, 524288
@@ -1977,6 +2107,14 @@
 	cuutf	%r2, %r4, -1
 	cuutf	%r2, %r4, 16
 
+#CHECK: error: invalid register pair
+#CHECK: cuxtr	%r0, %f2
+#CHECK: error: invalid register pair
+#CHECK: cuxtr	%r1, %f0
+
+	cuxtr	%r0, %f2
+	cuxtr	%r1, %f0
+
 #CHECK: error: invalid operand
 #CHECK: cvb	%r0, -1
 #CHECK: error: invalid operand
@@ -2043,6 +2181,11 @@
 
 	cxfbra	%f0, 0, %r0, 0
 
+#CHECK: error: instruction requires: fp-extension
+#CHECK: cxftr	%f0, 0, %r0, 0
+
+	cxftr	%f0, 0, %r0, 0
+
 #CHECK: error: invalid register pair
 #CHECK: cxfr	%f2, %r0
 
@@ -2063,16 +2206,36 @@
 
 	cxgr	%f2, %r0
 
+#CHECK: error: invalid register pair
+#CHECK: cxgtr	%f2, %r0
+
+	cxgtr	%f2, %r0
+
+#CHECK: error: instruction requires: fp-extension
+#CHECK: cxgtra	%f0, 0, %r0, 0
+
+	cxgtra	%f0, 0, %r0, 0
+
 #CHECK: error: instruction requires: fp-extension
 #CHECK: cxlfbr	%f0, 0, %r0, 0
 
 	cxlfbr	%f0, 0, %r0, 0
 
 #CHECK: error: instruction requires: fp-extension
+#CHECK: cxlftr	%f0, 0, %r0, 0
+
+	cxlftr	%f0, 0, %r0, 0
+
+#CHECK: error: instruction requires: fp-extension
 #CHECK: cxlgbr	%f0, 0, %r0, 0
 
 	cxlgbr	%f0, 0, %r0, 0
 
+#CHECK: error: instruction requires: fp-extension
+#CHECK: cxlgtr	%f0, 0, %r0, 0
+
+	cxlgtr	%f0, 0, %r0, 0
+
 #CHECK: error: invalid register pair
 #CHECK: cxr	%f0, %f2
 #CHECK: error: invalid register pair
@@ -2081,6 +2244,30 @@
 	cxr	%f0, %f2
 	cxr	%f2, %f0
 
+#CHECK: error: invalid register pair
+#CHECK: cxstr	%f0, %r1
+#CHECK: error: invalid register pair
+#CHECK: cxstr	%f2, %r0
+
+	cxstr	%f0, %r1
+	cxstr	%f2, %r0
+
+#CHECK: error: invalid register pair
+#CHECK: cxtr	%f0, %f2
+#CHECK: error: invalid register pair
+#CHECK: cxtr	%f2, %f0
+
+	cxtr	%f0, %f2
+	cxtr	%f2, %f0
+
+#CHECK: error: invalid register pair
+#CHECK: cxutr	%f0, %r1
+#CHECK: error: invalid register pair
+#CHECK: cxutr	%f2, %r0
+
+	cxutr	%f0, %r1
+	cxutr	%f2, %r0
+
 #CHECK: error: invalid operand
 #CHECK: cy	%r0, -524289
 #CHECK: error: invalid operand
@@ -2116,6 +2303,11 @@
 	ddb	%f0, -1
 	ddb	%f0, 4096
 
+#CHECK: error: instruction requires: fp-extension
+#CHECK: ddtra	%f0, %f0, %f0, 0
+
+	ddtra	%f0, %f0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: de	%f0, -1
 #CHECK: error: invalid operand
@@ -2286,6 +2478,22 @@
 	dxr	%f0, %f2
 	dxr	%f2, %f0
 
+#CHECK: error: invalid register pair
+#CHECK: dxtr	%f0, %f0, %f2
+#CHECK: error: invalid register pair
+#CHECK: dxtr	%f0, %f2, %f0
+#CHECK: error: invalid register pair
+#CHECK: dxtr	%f2, %f0, %f0
+
+	dxtr	%f0, %f0, %f2
+	dxtr	%f0, %f2, %f0
+	dxtr	%f2, %f0, %f0
+
+#CHECK: error: instruction requires: fp-extension
+#CHECK: dxtra	%f0, %f0, %f0, 0
+
+	dxtra	%f0, %f0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: ecag	%r0, %r0, -524289
 #CHECK: error: invalid operand
@@ -2402,6 +2610,22 @@
 	edmk	0(1,%r2), 0(%r1,%r2)
 	edmk	0(-), 0
 
+#CHECK: error: invalid register pair
+#CHECK: eextr	%f0, %f2
+#CHECK: error: invalid register pair
+#CHECK: eextr	%f2, %f0
+
+	eextr	%f0, %f2
+	eextr	%f2, %f0
+
+#CHECK: error: invalid register pair
+#CHECK: esxtr	%f0, %f2
+#CHECK: error: invalid register pair
+#CHECK: esxtr	%f2, %f0
+
+	esxtr	%f0, %f2
+	esxtr	%f2, %f0
+
 #CHECK: error: invalid operand
 #CHECK: ex      %r0, -1
 #CHECK: error: invalid operand
@@ -2424,6 +2648,20 @@
 	fidbra	%f0, 0, %f0, 0
 
 #CHECK: error: invalid operand
+#CHECK: fidtr	%f0, 0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: fidtr	%f0, 0, %f0, 16
+#CHECK: error: invalid operand
+#CHECK: fidtr	%f0, -1, %f0, 0
+#CHECK: error: invalid operand
+#CHECK: fidtr	%f0, 16, %f0, 0
+
+	fidtr	%f0, 0, %f0, -1
+	fidtr	%f0, 0, %f0, 16
+	fidtr	%f0, -1, %f0, 0
+	fidtr	%f0, 16, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: fiebr	%f0, -1, %f0
 #CHECK: error: invalid operand
 #CHECK: fiebr	%f0, 16, %f0
@@ -2463,6 +2701,26 @@
 	fixr	%f0, %f2
 	fixr	%f2, %f0
 
+#CHECK: error: invalid operand
+#CHECK: fixtr	%f0, 0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: fixtr	%f0, 0, %f0, 16
+#CHECK: error: invalid operand
+#CHECK: fixtr	%f0, -1, %f0, 0
+#CHECK: error: invalid operand
+#CHECK: fixtr	%f0, 16, %f0, 0
+#CHECK: error: invalid register pair
+#CHECK: fixtr	%f0, 0, %f2, 0
+#CHECK: error: invalid register pair
+#CHECK: fixtr	%f2, 0, %f0, 0
+
+	fixtr	%f0, 0, %f0, -1
+	fixtr	%f0, 0, %f0, 16
+	fixtr	%f0, -1, %f0, 0
+	fixtr	%f0, 16, %f0, 0
+	fixtr	%f0, 0, %f2, 0
+	fixtr	%f2, 0, %f0, 0
+
 #CHECK: error: invalid register pair
 #CHECK: flogr	%r1, %r0
 
@@ -2526,6 +2784,17 @@
 	icy	%r0, -524289
 	icy	%r0, 524288
 
+#CHECK: error: invalid register pair
+#CHECK: iextr	%f0, %f0, %f2
+#CHECK: error: invalid register pair
+#CHECK: iextr	%f0, %f2, %f0
+#CHECK: error: invalid register pair
+#CHECK: iextr	%f2, %f0, %f0
+
+	iextr	%f0, %f0, %f2
+	iextr	%f0, %f2, %f0
+	iextr	%f2, %f0, %f0
+
 #CHECK: error: invalid operand
 #CHECK: iihf	%r0, -1
 #CHECK: error: invalid operand
@@ -2644,6 +2913,14 @@
 	kxbr	%f0, %f2
 	kxbr	%f2, %f0
 
+#CHECK: error: invalid register pair
+#CHECK: kxtr	%f0, %f2
+#CHECK: error: invalid register pair
+#CHECK: kxtr	%f2, %f0
+
+	kxtr	%f0, %f2
+	kxtr	%f2, %f0
+
 #CHECK: error: invalid operand
 #CHECK: l	%r0, -1
 #CHECK: error: invalid operand
@@ -2802,6 +3079,14 @@
 	ldeb	%f0, -1
 	ldeb	%f0, 4096
 
+#CHECK: error: invalid operand
+#CHECK: ldetr	%f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: ldetr	%f0, %f0, 16
+
+	ldetr	%f0, %f0, -1
+	ldetr	%f0, %f0, 16
+
 #CHECK: error: invalid register pair
 #CHECK: ldxbr	%f0, %f2
 #CHECK: error: invalid register pair
@@ -2821,6 +3106,26 @@
 	ldxr	%f0, %f2
 
 #CHECK: error: invalid operand
+#CHECK: ldxtr	%f0, 0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: ldxtr	%f0, 0, %f0, 16
+#CHECK: error: invalid operand
+#CHECK: ldxtr	%f0, -1, %f0, 0
+#CHECK: error: invalid operand
+#CHECK: ldxtr	%f0, 16, %f0, 0
+#CHECK: error: invalid register pair
+#CHECK: ldxtr	%f0, 0, %f2, 0
+#CHECK: error: invalid register pair
+#CHECK: ldxtr	%f2, 0, %f0, 0
+
+	ldxtr	%f0, 0, %f0, -1
+	ldxtr	%f0, 0, %f0, 16
+	ldxtr	%f0, -1, %f0, 0
+	ldxtr	%f0, 16, %f0, 0
+	ldxtr	%f0, 0, %f2, 0
+	ldxtr	%f2, 0, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: ldy	%f0, -524289
 #CHECK: error: invalid operand
 #CHECK: ldy	%f0, 524288
@@ -2841,6 +3146,20 @@
 
 	ledbra	%f0, 0, %f0, 0
 
+#CHECK: error: invalid operand
+#CHECK: ledtr	%f0, 0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: ledtr	%f0, 0, %f0, 16
+#CHECK: error: invalid operand
+#CHECK: ledtr	%f0, -1, %f0, 0
+#CHECK: error: invalid operand
+#CHECK: ledtr	%f0, 16, %f0, 0
+
+	ledtr	%f0, 0, %f0, -1
+	ledtr	%f0, 0, %f0, 16
+	ledtr	%f0, -1, %f0, 0
+	ledtr	%f0, 16, %f0, 0
+
 #CHECK: error: invalid register pair
 #CHECK: lexbr	%f0, %f2
 #CHECK: error: invalid register pair
@@ -3365,6 +3684,14 @@
 	ltxr	%f0, %f14
 	ltxr	%f14, %f0
 
+#CHECK: error: invalid register pair
+#CHECK: ltxtr	%f0, %f14
+#CHECK: error: invalid register pair
+#CHECK: ltxtr	%f14, %f0
+
+	ltxtr	%f0, %f14
+	ltxtr	%f14, %f0
+
 #CHECK: error: invalid operand
 #CHECK: lxd	%f0, -1
 #CHECK: error: invalid operand
@@ -3398,6 +3725,17 @@
 	lxdr	%f2, %f0
 
 #CHECK: error: invalid operand
+#CHECK: lxdtr	%f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: lxdtr	%f0, %f0, 16
+#CHECK: error: invalid register pair
+#CHECK: lxdtr	%f2, %f0, 0
+
+	lxdtr	%f0, %f0, -1
+	lxdtr	%f0, %f0, 16
+	lxdtr	%f2, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: lxe	%f0, -1
 #CHECK: error: invalid operand
 #CHECK: lxe	%f0, 4096
@@ -3574,6 +3912,11 @@
 	mdeb	%f0, -1
 	mdeb	%f0, 4096
 
+#CHECK: error: instruction requires: fp-extension
+#CHECK: mdtra	%f0, %f0, %f0, 0
+
+	mdtra	%f0, %f0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: me	%f0, -1
 #CHECK: error: invalid operand
@@ -4244,6 +4587,22 @@
 	mxr	%f0, %f2
 	mxr	%f2, %f0
 
+#CHECK: error: invalid register pair
+#CHECK: mxtr	%f0, %f0, %f2
+#CHECK: error: invalid register pair
+#CHECK: mxtr	%f0, %f2, %f0
+#CHECK: error: invalid register pair
+#CHECK: mxtr	%f2, %f0, %f0
+
+	mxtr	%f0, %f0, %f2
+	mxtr	%f0, %f2, %f0
+	mxtr	%f2, %f0, %f0
+
+#CHECK: error: instruction requires: fp-extension
+#CHECK: mxtra	%f0, %f0, %f0, 0
+
+	mxtra	%f0, %f0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: my	%f0, %f0, -1
 #CHECK: error: invalid operand
@@ -4803,6 +5162,31 @@
         pr    %r0
 
 #CHECK: error: invalid operand
+#CHECK: qadtr	%f0, %f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: qadtr	%f0, %f0, %f0, 16
+
+	qadtr	%f0, %f0, %f0, -1
+	qadtr	%f0, %f0, %f0, 16
+
+#CHECK: error: invalid operand
+#CHECK: qaxtr	%f0, %f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: qaxtr	%f0, %f0, %f0, 16
+#CHECK: error: invalid register pair
+#CHECK: qaxtr	%f0, %f0, %f2, 0
+#CHECK: error: invalid register pair
+#CHECK: qaxtr	%f0, %f2, %f0, 0
+#CHECK: error: invalid register pair
+#CHECK: qaxtr	%f2, %f0, %f0, 0
+
+	qaxtr	%f0, %f0, %f0, -1
+	qaxtr	%f0, %f0, %f0, 16
+	qaxtr	%f0, %f0, %f2, 0
+	qaxtr	%f0, %f2, %f0, 0
+	qaxtr	%f2, %f0, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: risbg	%r0,%r0,0,0,-1
 #CHECK: error: invalid operand
 #CHECK: risbg	%r0,%r0,0,0,64
@@ -4901,6 +5285,31 @@
 	rosbg	%r0,%r0,256,0,0
 
 #CHECK: error: invalid operand
+#CHECK: rrdtr	%f0, %f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: rrdtr	%f0, %f0, %f0, 16
+
+	rrdtr	%f0, %f0, %f0, -1
+	rrdtr	%f0, %f0, %f0, 16
+
+#CHECK: error: invalid operand
+#CHECK: rrxtr	%f0, %f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: rrxtr	%f0, %f0, %f0, 16
+#CHECK: error: invalid register pair
+#CHECK: rrxtr	%f0, %f0, %f2, 0
+#CHECK: error: invalid register pair
+#CHECK: rrxtr	%f0, %f2, %f0, 0
+#CHECK: error: invalid register pair
+#CHECK: rrxtr	%f2, %f0, %f0, 0
+
+	rrxtr	%f0, %f0, %f0, -1
+	rrxtr	%f0, %f0, %f0, 16
+	rrxtr	%f0, %f0, %f2, 0
+	rrxtr	%f0, %f2, %f0, 0
+	rrxtr	%f2, %f0, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: rxsbg	%r0,%r0,0,0,-1
 #CHECK: error: invalid operand
 #CHECK: rxsbg	%r0,%r0,0,0,64
@@ -4944,6 +5353,11 @@
 	sdb	%f0, -1
 	sdb	%f0, 4096
 
+#CHECK: error: instruction requires: fp-extension
+#CHECK: sdtra	%f0, %f0, %f0, 0
+
+	sdtra	%f0, %f0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: se	%f0, -1
 #CHECK: error: invalid operand
@@ -5089,6 +5503,14 @@
 	sldl	%r0,0(%r1,%r2)
 
 #CHECK: error: invalid operand
+#CHECK: sldt	%f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: sldt	%f0, %f0, 4096
+
+	sldt	%f0, %f0, -1
+	sldt	%f0, %f0, 4096
+
+#CHECK: error: invalid operand
 #CHECK: slfi	%r0, -1
 #CHECK: error: invalid operand
 #CHECK: slfi	%r0, (1 << 32)
@@ -5164,6 +5586,20 @@
 	slrk	%r2,%r3,%r4
 
 #CHECK: error: invalid operand
+#CHECK: slxt	%f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: slxt	%f0, %f0, 4096
+#CHECK: error: invalid register pair
+#CHECK: slxt	%f0, %f2, 0
+#CHECK: error: invalid register pair
+#CHECK: slxt	%f2, %f0, 0
+
+	slxt	%f0, %f0, -1
+	slxt	%f0, %f0, 4096
+	slxt	%f0, %f2, 0
+	slxt	%f2, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: sly	%r0, -524289
 #CHECK: error: invalid operand
 #CHECK: sly	%r0, 524288
@@ -5339,6 +5775,14 @@
 	srdl	%r0,0(%r0)
 	srdl	%r0,0(%r1,%r2)
 
+#CHECK: error: invalid operand
+#CHECK: srdt	%f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: srdt	%f0, %f0, 4096
+
+	srdt	%f0, %f0, -1
+	srdt	%f0, %f0, 4096
+
 #CHECK: error: instruction requires: distinct-ops
 #CHECK: srk	%r2,%r3,%r4
 
@@ -5455,6 +5899,20 @@
 	srp	0(-), 0, 0
 
 #CHECK: error: invalid operand
+#CHECK: srxt	%f0, %f0, -1
+#CHECK: error: invalid operand
+#CHECK: srxt	%f0, %f0, 4096
+#CHECK: error: invalid register pair
+#CHECK: srxt	%f0, %f2, 0
+#CHECK: error: invalid register pair
+#CHECK: srxt	%f2, %f0, 0
+
+	srxt	%f0, %f0, -1
+	srxt	%f0, %f0, 4096
+	srxt	%f0, %f2, 0
+	srxt	%f2, %f0, 0
+
+#CHECK: error: invalid operand
 #CHECK: st	%r0, -1
 #CHECK: error: invalid operand
 #CHECK: st	%r0, 4096
@@ -5788,6 +6246,22 @@
 	sxr	%f0, %f2
 	sxr	%f2, %f0
 
+#CHECK: error: invalid register pair
+#CHECK: sxtr	%f0, %f0, %f2
+#CHECK: error: invalid register pair
+#CHECK: sxtr	%f0, %f2, %f0
+#CHECK: error: invalid register pair
+#CHECK: sxtr	%f2, %f0, %f0
+
+	sxtr	%f0, %f0, %f2
+	sxtr	%f0, %f2, %f0
+	sxtr	%f2, %f0, %f0
+
+#CHECK: error: instruction requires: fp-extension
+#CHECK: sxtra	%f0, %f0, %f0, 0
+
+	sxtra	%f0, %f0, %f0, 0
+
 #CHECK: error: invalid operand
 #CHECK: sy	%r0, -524289
 #CHECK: error: invalid operand
@@ -5837,6 +6311,60 @@
 	tcxb	%f0, 4096
 
 #CHECK: error: invalid operand
+#CHECK: tdcdt	%f0, -1
+#CHECK: error: invalid operand
+#CHECK: tdcdt	%f0, 4096
+
+	tdcdt	%f0, -1
+	tdcdt	%f0, 4096
+
+#CHECK: error: invalid operand
+#CHECK: tdcet	%f0, -1
+#CHECK: error: invalid operand
+#CHECK: tdcet	%f0, 4096
+
+	tdcet	%f0, -1
+	tdcet	%f0, 4096
+
+#CHECK: error: invalid operand
+#CHECK: tdcxt	%f0, -1
+#CHECK: error: invalid operand
+#CHECK: tdcxt	%f0, 4096
+#CHECK: error: invalid register pair
+#CHECK: tdcxt	%f2, 0
+
+	tdcxt	%f0, -1
+	tdcxt	%f0, 4096
+	tdcxt	%f2, 0
+
+#CHECK: error: invalid operand
+#CHECK: tdgdt	%f0, -1
+#CHECK: error: invalid operand
+#CHECK: tdgdt	%f0, 4096
+
+	tdgdt	%f0, -1
+	tdgdt	%f0, 4096
+
+#CHECK: error: invalid operand
+#CHECK: tdget	%f0, -1
+#CHECK: error: invalid operand
+#CHECK: tdget	%f0, 4096
+
+	tdget	%f0, -1
+	tdget	%f0, 4096
+
+#CHECK: error: invalid operand
+#CHECK: tdgxt	%f0, -1
+#CHECK: error: invalid operand
+#CHECK: tdgxt	%f0, 4096
+#CHECK: error: invalid register pair
+#CHECK: tdgxt	%f2, 0
+
+	tdgxt	%f0, -1
+	tdgxt	%f0, 4096
+	tdgxt	%f2, 0
+
+#CHECK: error: invalid operand
 #CHECK: tm	-1, 0
 #CHECK: error: invalid operand
 #CHECK: tm	4096, 0

Modified: llvm/trunk/test/MC/SystemZ/insn-good-z13.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/SystemZ/insn-good-z13.s?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/test/MC/SystemZ/insn-good-z13.s (original)
+++ llvm/trunk/test/MC/SystemZ/insn-good-z13.s Tue May 30 05:15:16 2017
@@ -4,6 +4,86 @@
 # RUN: llvm-mc -triple s390x-linux-gnu -mcpu=arch11 -show-encoding %s \
 # RUN:   | FileCheck %s
 
+#CHECK: cdpt	%f0, 0(1), 0                # encoding: [0xed,0x00,0x00,0x00,0x00,0xae]
+#CHECK: cdpt	%f15, 0(1), 0               # encoding: [0xed,0x00,0x00,0x00,0xf0,0xae]
+#CHECK: cdpt	%f0, 0(1), 15               # encoding: [0xed,0x00,0x00,0x00,0x0f,0xae]
+#CHECK: cdpt	%f0, 0(1,%r1), 0            # encoding: [0xed,0x00,0x10,0x00,0x00,0xae]
+#CHECK: cdpt	%f0, 0(1,%r15), 0           # encoding: [0xed,0x00,0xf0,0x00,0x00,0xae]
+#CHECK: cdpt	%f0, 4095(1,%r1), 0         # encoding: [0xed,0x00,0x1f,0xff,0x00,0xae]
+#CHECK: cdpt	%f0, 4095(1,%r15), 0        # encoding: [0xed,0x00,0xff,0xff,0x00,0xae]
+#CHECK: cdpt	%f0, 0(256,%r1), 0          # encoding: [0xed,0xff,0x10,0x00,0x00,0xae]
+#CHECK: cdpt	%f0, 0(256,%r15), 0         # encoding: [0xed,0xff,0xf0,0x00,0x00,0xae]
+
+	cdpt	%f0, 0(1), 0
+	cdpt	%f15, 0(1), 0
+	cdpt	%f0, 0(1), 15
+	cdpt	%f0, 0(1,%r1), 0
+	cdpt	%f0, 0(1,%r15), 0
+	cdpt	%f0, 4095(1,%r1), 0
+	cdpt	%f0, 4095(1,%r15), 0
+	cdpt	%f0, 0(256,%r1), 0
+	cdpt	%f0, 0(256,%r15), 0
+
+#CHECK: cpdt	%f0, 0(1), 0                # encoding: [0xed,0x00,0x00,0x00,0x00,0xac]
+#CHECK: cpdt	%f15, 0(1), 0               # encoding: [0xed,0x00,0x00,0x00,0xf0,0xac]
+#CHECK: cpdt	%f0, 0(1), 15               # encoding: [0xed,0x00,0x00,0x00,0x0f,0xac]
+#CHECK: cpdt	%f0, 0(1,%r1), 0            # encoding: [0xed,0x00,0x10,0x00,0x00,0xac]
+#CHECK: cpdt	%f0, 0(1,%r15), 0           # encoding: [0xed,0x00,0xf0,0x00,0x00,0xac]
+#CHECK: cpdt	%f0, 4095(1,%r1), 0         # encoding: [0xed,0x00,0x1f,0xff,0x00,0xac]
+#CHECK: cpdt	%f0, 4095(1,%r15), 0        # encoding: [0xed,0x00,0xff,0xff,0x00,0xac]
+#CHECK: cpdt	%f0, 0(256,%r1), 0          # encoding: [0xed,0xff,0x10,0x00,0x00,0xac]
+#CHECK: cpdt	%f0, 0(256,%r15), 0         # encoding: [0xed,0xff,0xf0,0x00,0x00,0xac]
+
+	cpdt	%f0, 0(1), 0
+	cpdt	%f15, 0(1), 0
+	cpdt	%f0, 0(1), 15
+	cpdt	%f0, 0(1,%r1), 0
+	cpdt	%f0, 0(1,%r15), 0
+	cpdt	%f0, 4095(1,%r1), 0
+	cpdt	%f0, 4095(1,%r15), 0
+	cpdt	%f0, 0(256,%r1), 0
+	cpdt	%f0, 0(256,%r15), 0
+
+#CHECK: cpxt	%f0, 0(1), 0                # encoding: [0xed,0x00,0x00,0x00,0x00,0xad]
+#CHECK: cpxt	%f13, 0(1), 0               # encoding: [0xed,0x00,0x00,0x00,0xd0,0xad]
+#CHECK: cpxt	%f0, 0(1), 15               # encoding: [0xed,0x00,0x00,0x00,0x0f,0xad]
+#CHECK: cpxt	%f0, 0(1,%r1), 0            # encoding: [0xed,0x00,0x10,0x00,0x00,0xad]
+#CHECK: cpxt	%f0, 0(1,%r15), 0           # encoding: [0xed,0x00,0xf0,0x00,0x00,0xad]
+#CHECK: cpxt	%f0, 4095(1,%r1), 0         # encoding: [0xed,0x00,0x1f,0xff,0x00,0xad]
+#CHECK: cpxt	%f0, 4095(1,%r15), 0        # encoding: [0xed,0x00,0xff,0xff,0x00,0xad]
+#CHECK: cpxt	%f0, 0(256,%r1), 0          # encoding: [0xed,0xff,0x10,0x00,0x00,0xad]
+#CHECK: cpxt	%f0, 0(256,%r15), 0         # encoding: [0xed,0xff,0xf0,0x00,0x00,0xad]
+
+	cpxt	%f0, 0(1), 0
+	cpxt	%f13, 0(1), 0
+	cpxt	%f0, 0(1), 15
+	cpxt	%f0, 0(1,%r1), 0
+	cpxt	%f0, 0(1,%r15), 0
+	cpxt	%f0, 4095(1,%r1), 0
+	cpxt	%f0, 4095(1,%r15), 0
+	cpxt	%f0, 0(256,%r1), 0
+	cpxt	%f0, 0(256,%r15), 0
+
+#CHECK: cxpt	%f0, 0(1), 0                # encoding: [0xed,0x00,0x00,0x00,0x00,0xaf]
+#CHECK: cxpt	%f13, 0(1), 0               # encoding: [0xed,0x00,0x00,0x00,0xd0,0xaf]
+#CHECK: cxpt	%f0, 0(1), 15               # encoding: [0xed,0x00,0x00,0x00,0x0f,0xaf]
+#CHECK: cxpt	%f0, 0(1,%r1), 0            # encoding: [0xed,0x00,0x10,0x00,0x00,0xaf]
+#CHECK: cxpt	%f0, 0(1,%r15), 0           # encoding: [0xed,0x00,0xf0,0x00,0x00,0xaf]
+#CHECK: cxpt	%f0, 4095(1,%r1), 0         # encoding: [0xed,0x00,0x1f,0xff,0x00,0xaf]
+#CHECK: cxpt	%f0, 4095(1,%r15), 0        # encoding: [0xed,0x00,0xff,0xff,0x00,0xaf]
+#CHECK: cxpt	%f0, 0(256,%r1), 0          # encoding: [0xed,0xff,0x10,0x00,0x00,0xaf]
+#CHECK: cxpt	%f0, 0(256,%r15), 0         # encoding: [0xed,0xff,0xf0,0x00,0x00,0xaf]
+
+	cxpt	%f0, 0(1), 0
+	cxpt	%f13, 0(1), 0
+	cxpt	%f0, 0(1), 15
+	cxpt	%f0, 0(1,%r1), 0
+	cxpt	%f0, 0(1,%r15), 0
+	cxpt	%f0, 4095(1,%r1), 0
+	cxpt	%f0, 4095(1,%r15), 0
+	cxpt	%f0, 0(256,%r1), 0
+	cxpt	%f0, 0(256,%r15), 0
+
 #CHECK: lcbb    %r0, 0, 0               # encoding: [0xe7,0x00,0x00,0x00,0x00,0x27]
 #CHECK: lcbb    %r0, 0, 15              # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x27]
 #CHECK: lcbb    %r0, 4095, 0            # encoding: [0xe7,0x00,0x0f,0xff,0x00,0x27]

Modified: llvm/trunk/test/MC/SystemZ/insn-good-z196.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/SystemZ/insn-good-z196.s?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/test/MC/SystemZ/insn-good-z196.s (original)
+++ llvm/trunk/test/MC/SystemZ/insn-good-z196.s Tue May 30 05:15:16 2017
@@ -2,6 +2,20 @@
 # RUN: llvm-mc -triple s390x-linux-gnu -mcpu=z196 -show-encoding %s | FileCheck %s
 # RUN: llvm-mc -triple s390x-linux-gnu -mcpu=arch9 -show-encoding %s | FileCheck %s
 
+#CHECK: adtra	%f0, %f0, %f0, 0        # encoding: [0xb3,0xd2,0x00,0x00]
+#CHECK: adtra	%f0, %f0, %f0, 15       # encoding: [0xb3,0xd2,0x0f,0x00]
+#CHECK: adtra	%f0, %f0, %f15, 0       # encoding: [0xb3,0xd2,0xf0,0x00]
+#CHECK: adtra	%f0, %f15, %f0, 0       # encoding: [0xb3,0xd2,0x00,0x0f]
+#CHECK: adtra	%f15, %f0, %f0, 0       # encoding: [0xb3,0xd2,0x00,0xf0]
+#CHECK: adtra	%f7, %f8, %f9, 10       # encoding: [0xb3,0xd2,0x9a,0x78]
+
+	adtra	%f0, %f0, %f0, 0
+	adtra	%f0, %f0, %f0, 15
+	adtra	%f0, %f0, %f15, 0
+	adtra	%f0, %f15, %f0, 0
+	adtra	%f15, %f0, %f0, 0
+	adtra	%f7, %f8, %f9, 10
+
 #CHECK: aghik	%r0, %r0, -32768        # encoding: [0xec,0x00,0x80,0x00,0x00,0xd9]
 #CHECK: aghik	%r0, %r0, -1            # encoding: [0xec,0x00,0xff,0xff,0x00,0xd9]
 #CHECK: aghik	%r0, %r0, 0             # encoding: [0xec,0x00,0x00,0x00,0x00,0xd9]
@@ -136,6 +150,20 @@
 	ark	%r15,%r0,%r0
 	ark	%r7,%r8,%r9
 
+#CHECK: axtra	%f0, %f0, %f0, 0        # encoding: [0xb3,0xda,0x00,0x00]
+#CHECK: axtra	%f0, %f0, %f0, 15       # encoding: [0xb3,0xda,0x0f,0x00]
+#CHECK: axtra	%f0, %f0, %f13, 0       # encoding: [0xb3,0xda,0xd0,0x00]
+#CHECK: axtra	%f0, %f13, %f0, 0       # encoding: [0xb3,0xda,0x00,0x0d]
+#CHECK: axtra	%f13, %f0, %f0, 0       # encoding: [0xb3,0xda,0x00,0xd0]
+#CHECK: axtra	%f8, %f8, %f8, 8        # encoding: [0xb3,0xda,0x88,0x88]
+
+	axtra	%f0, %f0, %f0, 0
+	axtra	%f0, %f0, %f0, 15
+	axtra	%f0, %f0, %f13, 0
+	axtra	%f0, %f13, %f0, 0
+	axtra	%f13, %f0, %f0, 0
+	axtra	%f8, %f8, %f8, 8
+
 #CHECK: brcth	%r0, .[[LAB:L.*]]-4294967296 # encoding: [0xcc,0x06,A,A,A,A]
 #CHECK:  fixup A - offset: 2, value: (.[[LAB]]-4294967296)+2, kind: FK_390_PC32DBL
 	brcth	%r0, -0x100000000
@@ -187,6 +215,20 @@
 	cdfbra	%f4, 5, %r6, 7
 	cdfbra	%f15, 0, %r0, 0
 
+#CHECK: cdftr	%f0, 0, %r0, 0          # encoding: [0xb9,0x51,0x00,0x00]
+#CHECK: cdftr	%f0, 0, %r0, 15         # encoding: [0xb9,0x51,0x0f,0x00]
+#CHECK: cdftr	%f0, 0, %r15, 0         # encoding: [0xb9,0x51,0x00,0x0f]
+#CHECK: cdftr	%f0, 15, %r0, 0         # encoding: [0xb9,0x51,0xf0,0x00]
+#CHECK: cdftr	%f4, 5, %r6, 7          # encoding: [0xb9,0x51,0x57,0x46]
+#CHECK: cdftr	%f15, 0, %r0, 0         # encoding: [0xb9,0x51,0x00,0xf0]
+
+	cdftr	%f0, 0, %r0, 0
+	cdftr	%f0, 0, %r0, 15
+	cdftr	%f0, 0, %r15, 0
+	cdftr	%f0, 15, %r0, 0
+	cdftr	%f4, 5, %r6, 7
+	cdftr	%f15, 0, %r0, 0
+
 #CHECK: cdgbra	%f0, 0, %r0, 0          # encoding: [0xb3,0xa5,0x00,0x00]
 #CHECK: cdgbra	%f0, 0, %r0, 15         # encoding: [0xb3,0xa5,0x0f,0x00]
 #CHECK: cdgbra	%f0, 0, %r15, 0         # encoding: [0xb3,0xa5,0x00,0x0f]
@@ -201,6 +243,20 @@
 	cdgbra	%f4, 5, %r6, 7
 	cdgbra	%f15, 0, %r0, 0
 
+#CHECK: cdgtra	%f0, 0, %r0, 0          # encoding: [0xb3,0xf1,0x00,0x00]
+#CHECK: cdgtra	%f0, 0, %r0, 15         # encoding: [0xb3,0xf1,0x0f,0x00]
+#CHECK: cdgtra	%f0, 0, %r15, 0         # encoding: [0xb3,0xf1,0x00,0x0f]
+#CHECK: cdgtra	%f0, 15, %r0, 0         # encoding: [0xb3,0xf1,0xf0,0x00]
+#CHECK: cdgtra	%f4, 5, %r6, 7          # encoding: [0xb3,0xf1,0x57,0x46]
+#CHECK: cdgtra	%f15, 0, %r0, 0         # encoding: [0xb3,0xf1,0x00,0xf0]
+
+	cdgtra	%f0, 0, %r0, 0
+	cdgtra	%f0, 0, %r0, 15
+	cdgtra	%f0, 0, %r15, 0
+	cdgtra	%f0, 15, %r0, 0
+	cdgtra	%f4, 5, %r6, 7
+	cdgtra	%f15, 0, %r0, 0
+
 #CHECK: cdlfbr	%f0, 0, %r0, 0          # encoding: [0xb3,0x91,0x00,0x00]
 #CHECK: cdlfbr	%f0, 0, %r0, 15         # encoding: [0xb3,0x91,0x0f,0x00]
 #CHECK: cdlfbr	%f0, 0, %r15, 0         # encoding: [0xb3,0x91,0x00,0x0f]
@@ -215,6 +271,20 @@
 	cdlfbr	%f4, 5, %r6, 7
 	cdlfbr	%f15, 0, %r0, 0
 
+#CHECK: cdlftr	%f0, 0, %r0, 0          # encoding: [0xb9,0x53,0x00,0x00]
+#CHECK: cdlftr	%f0, 0, %r0, 15         # encoding: [0xb9,0x53,0x0f,0x00]
+#CHECK: cdlftr	%f0, 0, %r15, 0         # encoding: [0xb9,0x53,0x00,0x0f]
+#CHECK: cdlftr	%f0, 15, %r0, 0         # encoding: [0xb9,0x53,0xf0,0x00]
+#CHECK: cdlftr	%f4, 5, %r6, 7          # encoding: [0xb9,0x53,0x57,0x46]
+#CHECK: cdlftr	%f15, 0, %r0, 0         # encoding: [0xb9,0x53,0x00,0xf0]
+
+	cdlftr	%f0, 0, %r0, 0
+	cdlftr	%f0, 0, %r0, 15
+	cdlftr	%f0, 0, %r15, 0
+	cdlftr	%f0, 15, %r0, 0
+	cdlftr	%f4, 5, %r6, 7
+	cdlftr	%f15, 0, %r0, 0
+
 #CHECK: cdlgbr	%f0, 0, %r0, 0          # encoding: [0xb3,0xa1,0x00,0x00]
 #CHECK: cdlgbr	%f0, 0, %r0, 15         # encoding: [0xb3,0xa1,0x0f,0x00]
 #CHECK: cdlgbr	%f0, 0, %r15, 0         # encoding: [0xb3,0xa1,0x00,0x0f]
@@ -229,6 +299,20 @@
 	cdlgbr	%f4, 5, %r6, 7
 	cdlgbr	%f15, 0, %r0, 0
 
+#CHECK: cdlgtr	%f0, 0, %r0, 0          # encoding: [0xb9,0x52,0x00,0x00]
+#CHECK: cdlgtr	%f0, 0, %r0, 15         # encoding: [0xb9,0x52,0x0f,0x00]
+#CHECK: cdlgtr	%f0, 0, %r15, 0         # encoding: [0xb9,0x52,0x00,0x0f]
+#CHECK: cdlgtr	%f0, 15, %r0, 0         # encoding: [0xb9,0x52,0xf0,0x00]
+#CHECK: cdlgtr	%f4, 5, %r6, 7          # encoding: [0xb9,0x52,0x57,0x46]
+#CHECK: cdlgtr	%f15, 0, %r0, 0         # encoding: [0xb9,0x52,0x00,0xf0]
+
+	cdlgtr	%f0, 0, %r0, 0
+	cdlgtr	%f0, 0, %r0, 15
+	cdlgtr	%f0, 0, %r15, 0
+	cdlgtr	%f0, 15, %r0, 0
+	cdlgtr	%f4, 5, %r6, 7
+	cdlgtr	%f15, 0, %r0, 0
+
 #CHECK: cefbra	%f0, 0, %r0, 0          # encoding: [0xb3,0x94,0x00,0x00]
 #CHECK: cefbra	%f0, 0, %r0, 15         # encoding: [0xb3,0x94,0x0f,0x00]
 #CHECK: cefbra	%f0, 0, %r15, 0         # encoding: [0xb3,0x94,0x00,0x0f]
@@ -299,6 +383,20 @@
 	cfdbra	%r4, 5, %f6, 7
 	cfdbra	%r15, 0, %f0, 0
 
+#CHECK: cfdtr	%r0, 0, %f0, 0          # encoding: [0xb9,0x41,0x00,0x00]
+#CHECK: cfdtr	%r0, 0, %f0, 15         # encoding: [0xb9,0x41,0x0f,0x00]
+#CHECK: cfdtr	%r0, 0, %f15, 0         # encoding: [0xb9,0x41,0x00,0x0f]
+#CHECK: cfdtr	%r0, 15, %f0, 0         # encoding: [0xb9,0x41,0xf0,0x00]
+#CHECK: cfdtr	%r4, 5, %f6, 7          # encoding: [0xb9,0x41,0x57,0x46]
+#CHECK: cfdtr	%r15, 0, %f0, 0         # encoding: [0xb9,0x41,0x00,0xf0]
+
+	cfdtr	%r0, 0, %f0, 0
+	cfdtr	%r0, 0, %f0, 15
+	cfdtr	%r0, 0, %f15, 0
+	cfdtr	%r0, 15, %f0, 0
+	cfdtr	%r4, 5, %f6, 7
+	cfdtr	%r15, 0, %f0, 0
+
 #CHECK: cfebra	%r0, 0, %f0, 0          # encoding: [0xb3,0x98,0x00,0x00]
 #CHECK: cfebra	%r0, 0, %f0, 15         # encoding: [0xb3,0x98,0x0f,0x00]
 #CHECK: cfebra	%r0, 0, %f15, 0         # encoding: [0xb3,0x98,0x00,0x0f]
@@ -327,6 +425,20 @@
 	cfxbra	%r7, 5, %f8, 9
 	cfxbra	%r15, 0, %f0, 0
 
+#CHECK: cfxtr	%r0, 0, %f0, 0          # encoding: [0xb9,0x49,0x00,0x00]
+#CHECK: cfxtr	%r0, 0, %f0, 15         # encoding: [0xb9,0x49,0x0f,0x00]
+#CHECK: cfxtr	%r0, 0, %f13, 0         # encoding: [0xb9,0x49,0x00,0x0d]
+#CHECK: cfxtr	%r0, 15, %f0, 0         # encoding: [0xb9,0x49,0xf0,0x00]
+#CHECK: cfxtr	%r7, 5, %f8, 9          # encoding: [0xb9,0x49,0x59,0x78]
+#CHECK: cfxtr	%r15, 0, %f0, 0         # encoding: [0xb9,0x49,0x00,0xf0]
+
+	cfxtr	%r0, 0, %f0, 0
+	cfxtr	%r0, 0, %f0, 15
+	cfxtr	%r0, 0, %f13, 0
+	cfxtr	%r0, 15, %f0, 0
+	cfxtr	%r7, 5, %f8, 9
+	cfxtr	%r15, 0, %f0, 0
+
 #CHECK: cgdbra	%r0, 0, %f0, 0          # encoding: [0xb3,0xa9,0x00,0x00]
 #CHECK: cgdbra	%r0, 0, %f0, 15         # encoding: [0xb3,0xa9,0x0f,0x00]
 #CHECK: cgdbra	%r0, 0, %f15, 0         # encoding: [0xb3,0xa9,0x00,0x0f]
@@ -341,6 +453,20 @@
 	cgdbra	%r4, 5, %f6, 7
 	cgdbra	%r15, 0, %f0, 0
 
+#CHECK: cgdtra	%r0, 0, %f0, 0          # encoding: [0xb3,0xe1,0x00,0x00]
+#CHECK: cgdtra	%r0, 0, %f0, 15         # encoding: [0xb3,0xe1,0x0f,0x00]
+#CHECK: cgdtra	%r0, 0, %f15, 0         # encoding: [0xb3,0xe1,0x00,0x0f]
+#CHECK: cgdtra	%r0, 15, %f0, 0         # encoding: [0xb3,0xe1,0xf0,0x00]
+#CHECK: cgdtra	%r4, 5, %f6, 7          # encoding: [0xb3,0xe1,0x57,0x46]
+#CHECK: cgdtra	%r15, 0, %f0, 0         # encoding: [0xb3,0xe1,0x00,0xf0]
+
+	cgdtra	%r0, 0, %f0, 0
+	cgdtra	%r0, 0, %f0, 15
+	cgdtra	%r0, 0, %f15, 0
+	cgdtra	%r0, 15, %f0, 0
+	cgdtra	%r4, 5, %f6, 7
+	cgdtra	%r15, 0, %f0, 0
+
 #CHECK: cgebra	%r0, 0, %f0, 0          # encoding: [0xb3,0xa8,0x00,0x00]
 #CHECK: cgebra	%r0, 0, %f0, 15         # encoding: [0xb3,0xa8,0x0f,0x00]
 #CHECK: cgebra	%r0, 0, %f15, 0         # encoding: [0xb3,0xa8,0x00,0x0f]
@@ -369,6 +495,20 @@
 	cgxbra	%r7, 5, %f8, 9
 	cgxbra	%r15, 0, %f0, 0
 
+#CHECK: cgxtra	%r0, 0, %f0, 0          # encoding: [0xb3,0xe9,0x00,0x00]
+#CHECK: cgxtra	%r0, 0, %f0, 15         # encoding: [0xb3,0xe9,0x0f,0x00]
+#CHECK: cgxtra	%r0, 0, %f13, 0         # encoding: [0xb3,0xe9,0x00,0x0d]
+#CHECK: cgxtra	%r0, 15, %f0, 0         # encoding: [0xb3,0xe9,0xf0,0x00]
+#CHECK: cgxtra	%r7, 5, %f8, 9          # encoding: [0xb3,0xe9,0x59,0x78]
+#CHECK: cgxtra	%r15, 0, %f0, 0         # encoding: [0xb3,0xe9,0x00,0xf0]
+
+	cgxtra	%r0, 0, %f0, 0
+	cgxtra	%r0, 0, %f0, 15
+	cgxtra	%r0, 0, %f13, 0
+	cgxtra	%r0, 15, %f0, 0
+	cgxtra	%r7, 5, %f8, 9
+	cgxtra	%r15, 0, %f0, 0
+
 #CHECK: chf	%r0, -524288            # encoding: [0xe3,0x00,0x00,0x00,0x80,0xcd]
 #CHECK: chf	%r0, -1                 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0xcd]
 #CHECK: chf	%r0, 0                  # encoding: [0xe3,0x00,0x00,0x00,0x00,0xcd]
@@ -419,6 +559,20 @@
 	clfdbr	%r4, 5, %f6, 7
 	clfdbr	%r15, 0, %f0, 0
 
+#CHECK: clfdtr	%r0, 0, %f0, 0          # encoding: [0xb9,0x43,0x00,0x00]
+#CHECK: clfdtr	%r0, 0, %f0, 15         # encoding: [0xb9,0x43,0x0f,0x00]
+#CHECK: clfdtr	%r0, 0, %f15, 0         # encoding: [0xb9,0x43,0x00,0x0f]
+#CHECK: clfdtr	%r0, 15, %f0, 0         # encoding: [0xb9,0x43,0xf0,0x00]
+#CHECK: clfdtr	%r4, 5, %f6, 7          # encoding: [0xb9,0x43,0x57,0x46]
+#CHECK: clfdtr	%r15, 0, %f0, 0         # encoding: [0xb9,0x43,0x00,0xf0]
+
+	clfdtr	%r0, 0, %f0, 0
+	clfdtr	%r0, 0, %f0, 15
+	clfdtr	%r0, 0, %f15, 0
+	clfdtr	%r0, 15, %f0, 0
+	clfdtr	%r4, 5, %f6, 7
+	clfdtr	%r15, 0, %f0, 0
+
 #CHECK: clfebr	%r0, 0, %f0, 0          # encoding: [0xb3,0x9c,0x00,0x00]
 #CHECK: clfebr	%r0, 0, %f0, 15         # encoding: [0xb3,0x9c,0x0f,0x00]
 #CHECK: clfebr	%r0, 0, %f15, 0         # encoding: [0xb3,0x9c,0x00,0x0f]
@@ -447,6 +601,20 @@
 	clfxbr	%r7, 5, %f8, 9
 	clfxbr	%r15, 0, %f0, 0
 
+#CHECK: clfxtr	%r0, 0, %f0, 0          # encoding: [0xb9,0x4b,0x00,0x00]
+#CHECK: clfxtr	%r0, 0, %f0, 15         # encoding: [0xb9,0x4b,0x0f,0x00]
+#CHECK: clfxtr	%r0, 0, %f13, 0         # encoding: [0xb9,0x4b,0x00,0x0d]
+#CHECK: clfxtr	%r0, 15, %f0, 0         # encoding: [0xb9,0x4b,0xf0,0x00]
+#CHECK: clfxtr	%r7, 5, %f8, 9          # encoding: [0xb9,0x4b,0x59,0x78]
+#CHECK: clfxtr	%r15, 0, %f0, 0         # encoding: [0xb9,0x4b,0x00,0xf0]
+
+	clfxtr	%r0, 0, %f0, 0
+	clfxtr	%r0, 0, %f0, 15
+	clfxtr	%r0, 0, %f13, 0
+	clfxtr	%r0, 15, %f0, 0
+	clfxtr	%r7, 5, %f8, 9
+	clfxtr	%r15, 0, %f0, 0
+
 #CHECK: clgdbr	%r0, 0, %f0, 0          # encoding: [0xb3,0xad,0x00,0x00]
 #CHECK: clgdbr	%r0, 0, %f0, 15         # encoding: [0xb3,0xad,0x0f,0x00]
 #CHECK: clgdbr	%r0, 0, %f15, 0         # encoding: [0xb3,0xad,0x00,0x0f]
@@ -461,6 +629,20 @@
 	clgdbr	%r4, 5, %f6, 7
 	clgdbr	%r15, 0, %f0, 0
 
+#CHECK: clgdtr	%r0, 0, %f0, 0          # encoding: [0xb9,0x42,0x00,0x00]
+#CHECK: clgdtr	%r0, 0, %f0, 15         # encoding: [0xb9,0x42,0x0f,0x00]
+#CHECK: clgdtr	%r0, 0, %f15, 0         # encoding: [0xb9,0x42,0x00,0x0f]
+#CHECK: clgdtr	%r0, 15, %f0, 0         # encoding: [0xb9,0x42,0xf0,0x00]
+#CHECK: clgdtr	%r4, 5, %f6, 7          # encoding: [0xb9,0x42,0x57,0x46]
+#CHECK: clgdtr	%r15, 0, %f0, 0         # encoding: [0xb9,0x42,0x00,0xf0]
+
+	clgdtr	%r0, 0, %f0, 0
+	clgdtr	%r0, 0, %f0, 15
+	clgdtr	%r0, 0, %f15, 0
+	clgdtr	%r0, 15, %f0, 0
+	clgdtr	%r4, 5, %f6, 7
+	clgdtr	%r15, 0, %f0, 0
+
 #CHECK: clgebr	%r0, 0, %f0, 0          # encoding: [0xb3,0xac,0x00,0x00]
 #CHECK: clgebr	%r0, 0, %f0, 15         # encoding: [0xb3,0xac,0x0f,0x00]
 #CHECK: clgebr	%r0, 0, %f15, 0         # encoding: [0xb3,0xac,0x00,0x0f]
@@ -489,6 +671,20 @@
 	clgxbr	%r7, 5, %f8, 9
 	clgxbr	%r15, 0, %f0, 0
 
+#CHECK: clgxtr	%r0, 0, %f0, 0          # encoding: [0xb9,0x4a,0x00,0x00]
+#CHECK: clgxtr	%r0, 0, %f0, 15         # encoding: [0xb9,0x4a,0x0f,0x00]
+#CHECK: clgxtr	%r0, 0, %f13, 0         # encoding: [0xb9,0x4a,0x00,0x0d]
+#CHECK: clgxtr	%r0, 15, %f0, 0         # encoding: [0xb9,0x4a,0xf0,0x00]
+#CHECK: clgxtr	%r7, 5, %f8, 9          # encoding: [0xb9,0x4a,0x59,0x78]
+#CHECK: clgxtr	%r15, 0, %f0, 0         # encoding: [0xb9,0x4a,0x00,0xf0]
+
+	clgxtr	%r0, 0, %f0, 0
+	clgxtr	%r0, 0, %f0, 15
+	clgxtr	%r0, 0, %f13, 0
+	clgxtr	%r0, 15, %f0, 0
+	clgxtr	%r7, 5, %f8, 9
+	clgxtr	%r15, 0, %f0, 0
+
 #CHECK: clhf	%r0, -524288            # encoding: [0xe3,0x00,0x00,0x00,0x80,0xcf]
 #CHECK: clhf	%r0, -1                 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0xcf]
 #CHECK: clhf	%r0, 0                  # encoding: [0xe3,0x00,0x00,0x00,0x00,0xcf]
@@ -535,6 +731,20 @@
 	cxfbra	%f4, 5, %r9, 10
 	cxfbra	%f13, 0, %r0, 0
 
+#CHECK: cxftr	%f0, 0, %r0, 0          # encoding: [0xb9,0x59,0x00,0x00]
+#CHECK: cxftr	%f0, 0, %r0, 15         # encoding: [0xb9,0x59,0x0f,0x00]
+#CHECK: cxftr	%f0, 0, %r15, 0         # encoding: [0xb9,0x59,0x00,0x0f]
+#CHECK: cxftr	%f0, 15, %r0, 0         # encoding: [0xb9,0x59,0xf0,0x00]
+#CHECK: cxftr	%f4, 5, %r9, 10         # encoding: [0xb9,0x59,0x5a,0x49]
+#CHECK: cxftr	%f13, 0, %r0, 0         # encoding: [0xb9,0x59,0x00,0xd0]
+
+	cxftr	%f0, 0, %r0, 0
+	cxftr	%f0, 0, %r0, 15
+	cxftr	%f0, 0, %r15, 0
+	cxftr	%f0, 15, %r0, 0
+	cxftr	%f4, 5, %r9, 10
+	cxftr	%f13, 0, %r0, 0
+
 #CHECK: cxgbra	%f0, 0, %r0, 0          # encoding: [0xb3,0xa6,0x00,0x00]
 #CHECK: cxgbra	%f0, 0, %r0, 15         # encoding: [0xb3,0xa6,0x0f,0x00]
 #CHECK: cxgbra	%f0, 0, %r15, 0         # encoding: [0xb3,0xa6,0x00,0x0f]
@@ -549,6 +759,20 @@
 	cxgbra	%f4, 5, %r9, 10
 	cxgbra	%f13, 0, %r0, 0
 
+#CHECK: cxgtra	%f0, 0, %r0, 0          # encoding: [0xb3,0xf9,0x00,0x00]
+#CHECK: cxgtra	%f0, 0, %r0, 15         # encoding: [0xb3,0xf9,0x0f,0x00]
+#CHECK: cxgtra	%f0, 0, %r15, 0         # encoding: [0xb3,0xf9,0x00,0x0f]
+#CHECK: cxgtra	%f0, 15, %r0, 0         # encoding: [0xb3,0xf9,0xf0,0x00]
+#CHECK: cxgtra	%f4, 5, %r9, 10         # encoding: [0xb3,0xf9,0x5a,0x49]
+#CHECK: cxgtra	%f13, 0, %r0, 0         # encoding: [0xb3,0xf9,0x00,0xd0]
+
+	cxgtra	%f0, 0, %r0, 0
+	cxgtra	%f0, 0, %r0, 15
+	cxgtra	%f0, 0, %r15, 0
+	cxgtra	%f0, 15, %r0, 0
+	cxgtra	%f4, 5, %r9, 10
+	cxgtra	%f13, 0, %r0, 0
+
 #CHECK: cxlfbr	%f0, 0, %r0, 0          # encoding: [0xb3,0x92,0x00,0x00]
 #CHECK: cxlfbr	%f0, 0, %r0, 15         # encoding: [0xb3,0x92,0x0f,0x00]
 #CHECK: cxlfbr	%f0, 0, %r15, 0         # encoding: [0xb3,0x92,0x00,0x0f]
@@ -563,6 +787,20 @@
 	cxlfbr	%f4, 5, %r9, 10
 	cxlfbr	%f13, 0, %r0, 0
 
+#CHECK: cxlftr	%f0, 0, %r0, 0          # encoding: [0xb9,0x5b,0x00,0x00]
+#CHECK: cxlftr	%f0, 0, %r0, 15         # encoding: [0xb9,0x5b,0x0f,0x00]
+#CHECK: cxlftr	%f0, 0, %r15, 0         # encoding: [0xb9,0x5b,0x00,0x0f]
+#CHECK: cxlftr	%f0, 15, %r0, 0         # encoding: [0xb9,0x5b,0xf0,0x00]
+#CHECK: cxlftr	%f4, 5, %r9, 10         # encoding: [0xb9,0x5b,0x5a,0x49]
+#CHECK: cxlftr	%f13, 0, %r0, 0         # encoding: [0xb9,0x5b,0x00,0xd0]
+
+	cxlftr	%f0, 0, %r0, 0
+	cxlftr	%f0, 0, %r0, 15
+	cxlftr	%f0, 0, %r15, 0
+	cxlftr	%f0, 15, %r0, 0
+	cxlftr	%f4, 5, %r9, 10
+	cxlftr	%f13, 0, %r0, 0
+
 #CHECK: cxlgbr	%f0, 0, %r0, 0          # encoding: [0xb3,0xa2,0x00,0x00]
 #CHECK: cxlgbr	%f0, 0, %r0, 15         # encoding: [0xb3,0xa2,0x0f,0x00]
 #CHECK: cxlgbr	%f0, 0, %r15, 0         # encoding: [0xb3,0xa2,0x00,0x0f]
@@ -577,6 +815,48 @@
 	cxlgbr	%f4, 5, %r9, 10
 	cxlgbr	%f13, 0, %r0, 0
 
+#CHECK: cxlgtr	%f0, 0, %r0, 0          # encoding: [0xb9,0x5a,0x00,0x00]
+#CHECK: cxlgtr	%f0, 0, %r0, 15         # encoding: [0xb9,0x5a,0x0f,0x00]
+#CHECK: cxlgtr	%f0, 0, %r15, 0         # encoding: [0xb9,0x5a,0x00,0x0f]
+#CHECK: cxlgtr	%f0, 15, %r0, 0         # encoding: [0xb9,0x5a,0xf0,0x00]
+#CHECK: cxlgtr	%f4, 5, %r9, 10         # encoding: [0xb9,0x5a,0x5a,0x49]
+#CHECK: cxlgtr	%f13, 0, %r0, 0         # encoding: [0xb9,0x5a,0x00,0xd0]
+
+	cxlgtr	%f0, 0, %r0, 0
+	cxlgtr	%f0, 0, %r0, 15
+	cxlgtr	%f0, 0, %r15, 0
+	cxlgtr	%f0, 15, %r0, 0
+	cxlgtr	%f4, 5, %r9, 10
+	cxlgtr	%f13, 0, %r0, 0
+
+#CHECK: ddtra	%f0, %f0, %f0, 0        # encoding: [0xb3,0xd1,0x00,0x00]
+#CHECK: ddtra	%f0, %f0, %f0, 15       # encoding: [0xb3,0xd1,0x0f,0x00]
+#CHECK: ddtra	%f0, %f0, %f15, 0       # encoding: [0xb3,0xd1,0xf0,0x00]
+#CHECK: ddtra	%f0, %f15, %f0, 0       # encoding: [0xb3,0xd1,0x00,0x0f]
+#CHECK: ddtra	%f15, %f0, %f0, 0       # encoding: [0xb3,0xd1,0x00,0xf0]
+#CHECK: ddtra	%f7, %f8, %f9, 10       # encoding: [0xb3,0xd1,0x9a,0x78]
+
+	ddtra	%f0, %f0, %f0, 0
+	ddtra	%f0, %f0, %f0, 15
+	ddtra	%f0, %f0, %f15, 0
+	ddtra	%f0, %f15, %f0, 0
+	ddtra	%f15, %f0, %f0, 0
+	ddtra	%f7, %f8, %f9, 10
+
+#CHECK: dxtra	%f0, %f0, %f0, 0        # encoding: [0xb3,0xd9,0x00,0x00]
+#CHECK: dxtra	%f0, %f0, %f0, 15       # encoding: [0xb3,0xd9,0x0f,0x00]
+#CHECK: dxtra	%f0, %f0, %f13, 0       # encoding: [0xb3,0xd9,0xd0,0x00]
+#CHECK: dxtra	%f0, %f13, %f0, 0       # encoding: [0xb3,0xd9,0x00,0x0d]
+#CHECK: dxtra	%f13, %f0, %f0, 0       # encoding: [0xb3,0xd9,0x00,0xd0]
+#CHECK: dxtra	%f8, %f8, %f8, 8        # encoding: [0xb3,0xd9,0x88,0x88]
+
+	dxtra	%f0, %f0, %f0, 0
+	dxtra	%f0, %f0, %f0, 15
+	dxtra	%f0, %f0, %f13, 0
+	dxtra	%f0, %f13, %f0, 0
+	dxtra	%f13, %f0, %f0, 0
+	dxtra	%f8, %f8, %f8, 8
+
 #CHECK: fidbra	%f0, 0, %f0, 0          # encoding: [0xb3,0x5f,0x00,0x00]
 #CHECK: fidbra	%f0, 0, %f0, 15         # encoding: [0xb3,0x5f,0x0f,0x00]
 #CHECK: fidbra	%f0, 0, %f15, 0         # encoding: [0xb3,0x5f,0x00,0x0f]
@@ -1285,6 +1565,34 @@
 	lpdg	%r2, 0(%r1), 1(%r15)
 	lpdg	%r2, 0(%r1), 4095(%r15)
 
+#CHECK: mdtra	%f0, %f0, %f0, 0        # encoding: [0xb3,0xd0,0x00,0x00]
+#CHECK: mdtra	%f0, %f0, %f0, 15       # encoding: [0xb3,0xd0,0x0f,0x00]
+#CHECK: mdtra	%f0, %f0, %f15, 0       # encoding: [0xb3,0xd0,0xf0,0x00]
+#CHECK: mdtra	%f0, %f15, %f0, 0       # encoding: [0xb3,0xd0,0x00,0x0f]
+#CHECK: mdtra	%f15, %f0, %f0, 0       # encoding: [0xb3,0xd0,0x00,0xf0]
+#CHECK: mdtra	%f7, %f8, %f9, 10       # encoding: [0xb3,0xd0,0x9a,0x78]
+
+	mdtra	%f0, %f0, %f0, 0
+	mdtra	%f0, %f0, %f0, 15
+	mdtra	%f0, %f0, %f15, 0
+	mdtra	%f0, %f15, %f0, 0
+	mdtra	%f15, %f0, %f0, 0
+	mdtra	%f7, %f8, %f9, 10
+
+#CHECK: mxtra	%f0, %f0, %f0, 0        # encoding: [0xb3,0xd8,0x00,0x00]
+#CHECK: mxtra	%f0, %f0, %f0, 15       # encoding: [0xb3,0xd8,0x0f,0x00]
+#CHECK: mxtra	%f0, %f0, %f13, 0       # encoding: [0xb3,0xd8,0xd0,0x00]
+#CHECK: mxtra	%f0, %f13, %f0, 0       # encoding: [0xb3,0xd8,0x00,0x0d]
+#CHECK: mxtra	%f13, %f0, %f0, 0       # encoding: [0xb3,0xd8,0x00,0xd0]
+#CHECK: mxtra	%f8, %f8, %f8, 8        # encoding: [0xb3,0xd8,0x88,0x88]
+
+	mxtra	%f0, %f0, %f0, 0
+	mxtra	%f0, %f0, %f0, 15
+	mxtra	%f0, %f0, %f13, 0
+	mxtra	%f0, %f13, %f0, 0
+	mxtra	%f13, %f0, %f0, 0
+	mxtra	%f8, %f8, %f8, 8
+
 #CHECK: ngrk	%r0, %r0, %r0           # encoding: [0xb9,0xe4,0x00,0x00]
 #CHECK: ngrk	%r0, %r0, %r15          # encoding: [0xb9,0xe4,0xf0,0x00]
 #CHECK: ngrk	%r0, %r15, %r0          # encoding: [0xb9,0xe4,0x00,0x0f]
@@ -1379,6 +1687,20 @@
 	risblg	%r15,%r0,0,0,0
 	risblg	%r4,%r5,6,7,8
 
+#CHECK: sdtra	%f0, %f0, %f0, 0        # encoding: [0xb3,0xd3,0x00,0x00]
+#CHECK: sdtra	%f0, %f0, %f0, 15       # encoding: [0xb3,0xd3,0x0f,0x00]
+#CHECK: sdtra	%f0, %f0, %f15, 0       # encoding: [0xb3,0xd3,0xf0,0x00]
+#CHECK: sdtra	%f0, %f15, %f0, 0       # encoding: [0xb3,0xd3,0x00,0x0f]
+#CHECK: sdtra	%f15, %f0, %f0, 0       # encoding: [0xb3,0xd3,0x00,0xf0]
+#CHECK: sdtra	%f7, %f8, %f9, 10       # encoding: [0xb3,0xd3,0x9a,0x78]
+
+	sdtra	%f0, %f0, %f0, 0
+	sdtra	%f0, %f0, %f0, 15
+	sdtra	%f0, %f0, %f15, 0
+	sdtra	%f0, %f15, %f0, 0
+	sdtra	%f15, %f0, %f0, 0
+	sdtra	%f7, %f8, %f9, 10
+
 #CHECK: sgrk	%r0, %r0, %r0           # encoding: [0xb9,0xe9,0x00,0x00]
 #CHECK: sgrk	%r0, %r0, %r15          # encoding: [0xb9,0xe9,0xf0,0x00]
 #CHECK: sgrk	%r0, %r15, %r0          # encoding: [0xb9,0xe9,0x00,0x0f]
@@ -1731,6 +2053,20 @@
 	stocgnp  %r1,2(%r3)
 	stocgno  %r1,2(%r3)
 
+#CHECK: sxtra	%f0, %f0, %f0, 0        # encoding: [0xb3,0xdb,0x00,0x00]
+#CHECK: sxtra	%f0, %f0, %f0, 15       # encoding: [0xb3,0xdb,0x0f,0x00]
+#CHECK: sxtra	%f0, %f0, %f13, 0       # encoding: [0xb3,0xdb,0xd0,0x00]
+#CHECK: sxtra	%f0, %f13, %f0, 0       # encoding: [0xb3,0xdb,0x00,0x0d]
+#CHECK: sxtra	%f13, %f0, %f0, 0       # encoding: [0xb3,0xdb,0x00,0xd0]
+#CHECK: sxtra	%f8, %f8, %f8, 8        # encoding: [0xb3,0xdb,0x88,0x88]
+
+	sxtra	%f0, %f0, %f0, 0
+	sxtra	%f0, %f0, %f0, 15
+	sxtra	%f0, %f0, %f13, 0
+	sxtra	%f0, %f13, %f0, 0
+	sxtra	%f13, %f0, %f0, 0
+	sxtra	%f8, %f8, %f8, 8
+
 #CHECK: xgrk	%r0, %r0, %r0           # encoding: [0xb9,0xe7,0x00,0x00]
 #CHECK: xgrk	%r0, %r0, %r15          # encoding: [0xb9,0xe7,0xf0,0x00]
 #CHECK: xgrk	%r0, %r15, %r0          # encoding: [0xb9,0xe7,0x00,0x0f]

Modified: llvm/trunk/test/MC/SystemZ/insn-good-zEC12.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/SystemZ/insn-good-zEC12.s?rev=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/test/MC/SystemZ/insn-good-zEC12.s (original)
+++ llvm/trunk/test/MC/SystemZ/insn-good-zEC12.s Tue May 30 05:15:16 2017
@@ -114,6 +114,26 @@
 	bprp	8, branch, target at plt
 	bprp	9, branch at plt, target at plt
 
+#CHECK: cdzt	%f0, 0(1), 0                # encoding: [0xed,0x00,0x00,0x00,0x00,0xaa]
+#CHECK: cdzt	%f15, 0(1), 0               # encoding: [0xed,0x00,0x00,0x00,0xf0,0xaa]
+#CHECK: cdzt	%f0, 0(1), 15               # encoding: [0xed,0x00,0x00,0x00,0x0f,0xaa]
+#CHECK: cdzt	%f0, 0(1,%r1), 0            # encoding: [0xed,0x00,0x10,0x00,0x00,0xaa]
+#CHECK: cdzt	%f0, 0(1,%r15), 0           # encoding: [0xed,0x00,0xf0,0x00,0x00,0xaa]
+#CHECK: cdzt	%f0, 4095(1,%r1), 0         # encoding: [0xed,0x00,0x1f,0xff,0x00,0xaa]
+#CHECK: cdzt	%f0, 4095(1,%r15), 0        # encoding: [0xed,0x00,0xff,0xff,0x00,0xaa]
+#CHECK: cdzt	%f0, 0(256,%r1), 0          # encoding: [0xed,0xff,0x10,0x00,0x00,0xaa]
+#CHECK: cdzt	%f0, 0(256,%r15), 0         # encoding: [0xed,0xff,0xf0,0x00,0x00,0xaa]
+
+	cdzt	%f0, 0(1), 0
+	cdzt	%f15, 0(1), 0
+	cdzt	%f0, 0(1), 15
+	cdzt	%f0, 0(1,%r1), 0
+	cdzt	%f0, 0(1,%r15), 0
+	cdzt	%f0, 4095(1,%r1), 0
+	cdzt	%f0, 4095(1,%r15), 0
+	cdzt	%f0, 0(256,%r1), 0
+	cdzt	%f0, 0(256,%r15), 0
+
 #CHECK: clt	%r0, 12, -524288            # encoding: [0xeb,0x0c,0x00,0x00,0x80,0x23]
 #CHECK: clt	%r0, 12, -1                 # encoding: [0xeb,0x0c,0x0f,0xff,0xff,0x23]
 #CHECK: clt	%r0, 12, 0                  # encoding: [0xeb,0x0c,0x00,0x00,0x00,0x23]
@@ -178,6 +198,66 @@
 	clgtnl	%r0, 0(%r15)
 	clgtnh	%r0, 0(%r15)
 
+#CHECK: cxzt	%f0, 0(1), 0                # encoding: [0xed,0x00,0x00,0x00,0x00,0xab]
+#CHECK: cxzt	%f13, 0(1), 0               # encoding: [0xed,0x00,0x00,0x00,0xd0,0xab]
+#CHECK: cxzt	%f0, 0(1), 15               # encoding: [0xed,0x00,0x00,0x00,0x0f,0xab]
+#CHECK: cxzt	%f0, 0(1,%r1), 0            # encoding: [0xed,0x00,0x10,0x00,0x00,0xab]
+#CHECK: cxzt	%f0, 0(1,%r15), 0           # encoding: [0xed,0x00,0xf0,0x00,0x00,0xab]
+#CHECK: cxzt	%f0, 4095(1,%r1), 0         # encoding: [0xed,0x00,0x1f,0xff,0x00,0xab]
+#CHECK: cxzt	%f0, 4095(1,%r15), 0        # encoding: [0xed,0x00,0xff,0xff,0x00,0xab]
+#CHECK: cxzt	%f0, 0(256,%r1), 0          # encoding: [0xed,0xff,0x10,0x00,0x00,0xab]
+#CHECK: cxzt	%f0, 0(256,%r15), 0         # encoding: [0xed,0xff,0xf0,0x00,0x00,0xab]
+
+	cxzt	%f0, 0(1), 0
+	cxzt	%f13, 0(1), 0
+	cxzt	%f0, 0(1), 15
+	cxzt	%f0, 0(1,%r1), 0
+	cxzt	%f0, 0(1,%r15), 0
+	cxzt	%f0, 4095(1,%r1), 0
+	cxzt	%f0, 4095(1,%r15), 0
+	cxzt	%f0, 0(256,%r1), 0
+	cxzt	%f0, 0(256,%r15), 0
+
+#CHECK: czdt	%f0, 0(1), 0                # encoding: [0xed,0x00,0x00,0x00,0x00,0xa8]
+#CHECK: czdt	%f15, 0(1), 0               # encoding: [0xed,0x00,0x00,0x00,0xf0,0xa8]
+#CHECK: czdt	%f0, 0(1), 15               # encoding: [0xed,0x00,0x00,0x00,0x0f,0xa8]
+#CHECK: czdt	%f0, 0(1,%r1), 0            # encoding: [0xed,0x00,0x10,0x00,0x00,0xa8]
+#CHECK: czdt	%f0, 0(1,%r15), 0           # encoding: [0xed,0x00,0xf0,0x00,0x00,0xa8]
+#CHECK: czdt	%f0, 4095(1,%r1), 0         # encoding: [0xed,0x00,0x1f,0xff,0x00,0xa8]
+#CHECK: czdt	%f0, 4095(1,%r15), 0        # encoding: [0xed,0x00,0xff,0xff,0x00,0xa8]
+#CHECK: czdt	%f0, 0(256,%r1), 0          # encoding: [0xed,0xff,0x10,0x00,0x00,0xa8]
+#CHECK: czdt	%f0, 0(256,%r15), 0         # encoding: [0xed,0xff,0xf0,0x00,0x00,0xa8]
+
+	czdt	%f0, 0(1), 0
+	czdt	%f15, 0(1), 0
+	czdt	%f0, 0(1), 15
+	czdt	%f0, 0(1,%r1), 0
+	czdt	%f0, 0(1,%r15), 0
+	czdt	%f0, 4095(1,%r1), 0
+	czdt	%f0, 4095(1,%r15), 0
+	czdt	%f0, 0(256,%r1), 0
+	czdt	%f0, 0(256,%r15), 0
+
+#CHECK: czxt	%f0, 0(1), 0                # encoding: [0xed,0x00,0x00,0x00,0x00,0xa9]
+#CHECK: czxt	%f13, 0(1), 0               # encoding: [0xed,0x00,0x00,0x00,0xd0,0xa9]
+#CHECK: czxt	%f0, 0(1), 15               # encoding: [0xed,0x00,0x00,0x00,0x0f,0xa9]
+#CHECK: czxt	%f0, 0(1,%r1), 0            # encoding: [0xed,0x00,0x10,0x00,0x00,0xa9]
+#CHECK: czxt	%f0, 0(1,%r15), 0           # encoding: [0xed,0x00,0xf0,0x00,0x00,0xa9]
+#CHECK: czxt	%f0, 4095(1,%r1), 0         # encoding: [0xed,0x00,0x1f,0xff,0x00,0xa9]
+#CHECK: czxt	%f0, 4095(1,%r15), 0        # encoding: [0xed,0x00,0xff,0xff,0x00,0xa9]
+#CHECK: czxt	%f0, 0(256,%r1), 0          # encoding: [0xed,0xff,0x10,0x00,0x00,0xa9]
+#CHECK: czxt	%f0, 0(256,%r15), 0         # encoding: [0xed,0xff,0xf0,0x00,0x00,0xa9]
+
+	czxt	%f0, 0(1), 0
+	czxt	%f13, 0(1), 0
+	czxt	%f0, 0(1), 15
+	czxt	%f0, 0(1,%r1), 0
+	czxt	%f0, 0(1,%r15), 0
+	czxt	%f0, 4095(1,%r1), 0
+	czxt	%f0, 4095(1,%r15), 0
+	czxt	%f0, 0(256,%r1), 0
+	czxt	%f0, 0(256,%r15), 0
+
 #CHECK: etnd	%r0                     # encoding: [0xb2,0xec,0x00,0x00]
 #CHECK: etnd	%r15                    # encoding: [0xb2,0xec,0x00,0xf0]
 #CHECK: etnd	%r7                     # encoding: [0xb2,0xec,0x00,0x70]

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=304203&r1=304202&r2=304203&view=diff
==============================================================================
--- llvm/trunk/test/MC/SystemZ/insn-good.s (original)
+++ llvm/trunk/test/MC/SystemZ/insn-good.s Tue May 30 05:15:16 2017
@@ -69,6 +69,18 @@
 	adr	%f7, %f8
 	adr	%f15, %f0
 
+#CHECK: adtr	%f0, %f0, %f0           # encoding: [0xb3,0xd2,0x00,0x00]
+#CHECK: adtr	%f0, %f0, %f15          # encoding: [0xb3,0xd2,0xf0,0x00]
+#CHECK: adtr	%f0, %f15, %f0          # encoding: [0xb3,0xd2,0x00,0x0f]
+#CHECK: adtr	%f15, %f0, %f0          # encoding: [0xb3,0xd2,0x00,0xf0]
+#CHECK: adtr	%f7, %f8, %f9           # encoding: [0xb3,0xd2,0x90,0x78]
+
+	adtr	%f0, %f0, %f0
+	adtr	%f0, %f0, %f15
+	adtr	%f0, %f15, %f0
+	adtr	%f15, %f0, %f0
+	adtr	%f7, %f8, %f9
+
 #CHECK: ae	%f0, 0                  # encoding: [0x7a,0x00,0x00,0x00]
 #CHECK: ae	%f0, 4095               # encoding: [0x7a,0x00,0x0f,0xff]
 #CHECK: ae	%f0, 0(%r1)             # encoding: [0x7a,0x00,0x10,0x00]
@@ -695,6 +707,18 @@
 	axr	%f8, %f8
 	axr	%f13, %f0
 
+#CHECK: axtr	%f0, %f0, %f0           # encoding: [0xb3,0xda,0x00,0x00]
+#CHECK: axtr	%f0, %f0, %f13          # encoding: [0xb3,0xda,0xd0,0x00]
+#CHECK: axtr	%f0, %f13, %f0          # encoding: [0xb3,0xda,0x00,0x0d]
+#CHECK: axtr	%f13, %f0, %f0          # encoding: [0xb3,0xda,0x00,0xd0]
+#CHECK: axtr	%f8, %f8, %f8           # encoding: [0xb3,0xda,0x80,0x88]
+
+	axtr	%f0, %f0, %f0
+	axtr	%f0, %f0, %f13
+	axtr	%f0, %f13, %f0
+	axtr	%f13, %f0, %f0
+	axtr	%f8, %f8, %f8
+
 #CHECK: ay	%r0, -524288            # encoding: [0xe3,0x00,0x00,0x00,0x80,0x5a]
 #CHECK: ay	%r0, -1                 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x5a]
 #CHECK: ay	%r0, 0                  # encoding: [0xe3,0x00,0x00,0x00,0x00,0x5a]
@@ -2089,6 +2113,18 @@
 	cdgr	%f7, %r8
 	cdgr	%f15, %r15
 
+#CHECK: cdgtr	%f0, %r0                # encoding: [0xb3,0xf1,0x00,0x00]
+#CHECK: cdgtr	%f0, %r15               # encoding: [0xb3,0xf1,0x00,0x0f]
+#CHECK: cdgtr	%f15, %r0               # encoding: [0xb3,0xf1,0x00,0xf0]
+#CHECK: cdgtr	%f7, %r8                # encoding: [0xb3,0xf1,0x00,0x78]
+#CHECK: cdgtr	%f15, %r15              # encoding: [0xb3,0xf1,0x00,0xff]
+
+	cdgtr	%f0, %r0
+	cdgtr	%f0, %r15
+	cdgtr	%f15, %r0
+	cdgtr	%f7, %r8
+	cdgtr	%f15, %r15
+
 #CHECK: cdr	%f0, %f0                # encoding: [0x29,0x00]
 #CHECK: cdr	%f0, %f15               # encoding: [0x29,0x0f]
 #CHECK: cdr	%f7, %f8                # encoding: [0x29,0x78]
@@ -2141,6 +2177,18 @@
 	cdsg	%r0, %r14, 0
 	cdsg	%r14, %r0, 0
 
+#CHECK: cdstr	%f0, %r0                # encoding: [0xb3,0xf3,0x00,0x00]
+#CHECK: cdstr	%f0, %r15               # encoding: [0xb3,0xf3,0x00,0x0f]
+#CHECK: cdstr	%f15, %r0               # encoding: [0xb3,0xf3,0x00,0xf0]
+#CHECK: cdstr	%f7, %r8                # encoding: [0xb3,0xf3,0x00,0x78]
+#CHECK: cdstr	%f15, %r15              # encoding: [0xb3,0xf3,0x00,0xff]
+
+	cdstr	%f0, %r0
+	cdstr	%f0, %r15
+	cdstr	%f15, %r0
+	cdstr	%f7, %r8
+	cdstr	%f15, %r15
+
 #CHECK: cdsy	%r0, %r0, -524288       # encoding: [0xeb,0x00,0x00,0x00,0x80,0x31]
 #CHECK: cdsy	%r0, %r0, -1            # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x31]
 #CHECK: cdsy	%r0, %r0, 0             # encoding: [0xeb,0x00,0x00,0x00,0x00,0x31]
@@ -2165,6 +2213,28 @@
 	cdsy	%r0, %r14, 0
 	cdsy	%r14, %r0, 0
 
+#CHECK: cdtr	%f0, %f0                # encoding: [0xb3,0xe4,0x00,0x00]
+#CHECK: cdtr	%f0, %f15               # encoding: [0xb3,0xe4,0x00,0x0f]
+#CHECK: cdtr	%f7, %f8                # encoding: [0xb3,0xe4,0x00,0x78]
+#CHECK: cdtr	%f15, %f0               # encoding: [0xb3,0xe4,0x00,0xf0]
+
+	cdtr	%f0, %f0
+	cdtr	%f0, %f15
+	cdtr	%f7, %f8
+	cdtr	%f15, %f0
+
+#CHECK: cdutr	%f0, %r0                # encoding: [0xb3,0xf2,0x00,0x00]
+#CHECK: cdutr	%f0, %r15               # encoding: [0xb3,0xf2,0x00,0x0f]
+#CHECK: cdutr	%f15, %r0               # encoding: [0xb3,0xf2,0x00,0xf0]
+#CHECK: cdutr	%f7, %r8                # encoding: [0xb3,0xf2,0x00,0x78]
+#CHECK: cdutr	%f15, %r15              # encoding: [0xb3,0xf2,0x00,0xff]
+
+	cdutr	%f0, %r0
+	cdutr	%f0, %r15
+	cdutr	%f15, %r0
+	cdutr	%f7, %r8
+	cdutr	%f15, %r15
+
 #CHECK: ce	%f0, 0                  # encoding: [0x79,0x00,0x00,0x00]
 #CHECK: ce	%f0, 4095               # encoding: [0x79,0x00,0x0f,0xff]
 #CHECK: ce	%f0, 0(%r1)             # encoding: [0x79,0x00,0x10,0x00]
@@ -2207,6 +2277,16 @@
 	cebr	%f7, %f8
 	cebr	%f15, %f0
 
+#CHECK: cedtr	%f0, %f0                # encoding: [0xb3,0xf4,0x00,0x00]
+#CHECK: cedtr	%f0, %f15               # encoding: [0xb3,0xf4,0x00,0x0f]
+#CHECK: cedtr	%f7, %f8                # encoding: [0xb3,0xf4,0x00,0x78]
+#CHECK: cedtr	%f15, %f0               # encoding: [0xb3,0xf4,0x00,0xf0]
+
+	cedtr	%f0, %f0
+	cedtr	%f0, %f15
+	cedtr	%f7, %f8
+	cedtr	%f15, %f0
+
 #CHECK: cefbr	%f0, %r0                # encoding: [0xb3,0x94,0x00,0x00]
 #CHECK: cefbr	%f0, %r15               # encoding: [0xb3,0x94,0x00,0x0f]
 #CHECK: cefbr	%f15, %r0               # encoding: [0xb3,0x94,0x00,0xf0]
@@ -2265,6 +2345,16 @@
 	cer	%f7, %f8
 	cer	%f15, %f0
 
+#CHECK: cextr	%f0, %f0                # encoding: [0xb3,0xfc,0x00,0x00]
+#CHECK: cextr	%f0, %f13               # encoding: [0xb3,0xfc,0x00,0x0d]
+#CHECK: cextr	%f8, %f8                # encoding: [0xb3,0xfc,0x00,0x88]
+#CHECK: cextr	%f13, %f0               # encoding: [0xb3,0xfc,0x00,0xd0]
+
+	cextr	%f0, %f0
+	cextr	%f0, %f13
+	cextr	%f8, %f8
+	cextr	%f13, %f0
+
 #CHECK: cfc	0                       # encoding: [0xb2,0x1a,0x00,0x00]
 #CHECK: cfc	0(%r1)                  # encoding: [0xb2,0x1a,0x10,0x00]
 #CHECK: cfc	0(%r15)                 # encoding: [0xb2,0x1a,0xf0,0x00]
@@ -2411,6 +2501,18 @@
 	cgdr	%r4, 5, %f6
 	cgdr	%r15, 0, %f0
 
+#CHECK: cgdtr	%r0, 0, %f0             # encoding: [0xb3,0xe1,0x00,0x00]
+#CHECK: cgdtr	%r0, 0, %f15            # encoding: [0xb3,0xe1,0x00,0x0f]
+#CHECK: cgdtr	%r0, 15, %f0            # encoding: [0xb3,0xe1,0xf0,0x00]
+#CHECK: cgdtr	%r4, 5, %f6             # encoding: [0xb3,0xe1,0x50,0x46]
+#CHECK: cgdtr	%r15, 0, %f0            # encoding: [0xb3,0xe1,0x00,0xf0]
+
+	cgdtr	%r0, 0, %f0
+	cgdtr	%r0, 0, %f15
+	cgdtr	%r0, 15, %f0
+	cgdtr	%r4, 5, %f6
+	cgdtr	%r15, 0, %f0
+
 #CHECK: cgebr	%r0, 0, %f0             # encoding: [0xb3,0xa8,0x00,0x00]
 #CHECK: cgebr	%r0, 0, %f15            # encoding: [0xb3,0xa8,0x00,0x0f]
 #CHECK: cgebr	%r0, 15, %f0            # encoding: [0xb3,0xa8,0xf0,0x00]
@@ -3349,6 +3451,18 @@
 	cgxr	%r4, 5, %f8
 	cgxr	%r15, 0, %f0
 
+#CHECK: cgxtr	%r0, 0, %f0             # encoding: [0xb3,0xe9,0x00,0x00]
+#CHECK: cgxtr	%r0, 0, %f13            # encoding: [0xb3,0xe9,0x00,0x0d]
+#CHECK: cgxtr	%r0, 15, %f0            # encoding: [0xb3,0xe9,0xf0,0x00]
+#CHECK: cgxtr	%r4, 5, %f8             # encoding: [0xb3,0xe9,0x50,0x48]
+#CHECK: cgxtr	%r15, 0, %f0            # encoding: [0xb3,0xe9,0x00,0xf0]
+
+	cgxtr	%r0, 0, %f0
+	cgxtr	%r0, 0, %f13
+	cgxtr	%r0, 15, %f0
+	cgxtr	%r4, 5, %f8
+	cgxtr	%r15, 0, %f0
+
 #CHECK: ch	%r0, 0                  # encoding: [0x49,0x00,0x00,0x00]
 #CHECK: ch	%r0, 4095               # encoding: [0x49,0x00,0x0f,0xff]
 #CHECK: ch	%r0, 0(%r1)             # encoding: [0x49,0x00,0x10,0x00]
@@ -6143,6 +6257,18 @@
 	cs	%r0, %r15, 0
 	cs	%r15, %r0, 0
 
+#CHECK: csdtr	%r0, %f0, 0             # encoding: [0xb3,0xe3,0x00,0x00]
+#CHECK: csdtr	%r0, %f15, 0            # encoding: [0xb3,0xe3,0x00,0x0f]
+#CHECK: csdtr	%r0, %f0, 15            # encoding: [0xb3,0xe3,0x0f,0x00]
+#CHECK: csdtr	%r4, %f5, 6             # encoding: [0xb3,0xe3,0x06,0x45]
+#CHECK: csdtr	%r15, %f0, 0            # encoding: [0xb3,0xe3,0x00,0xf0]
+
+	csdtr	%r0, %f0, 0
+	csdtr	%r0, %f15, 0
+	csdtr	%r0, %f0, 15
+	csdtr	%r4, %f5, 6
+	csdtr	%r15, %f0, 0
+
 #CHECK: csg	%r0, %r0, -524288       # encoding: [0xeb,0x00,0x00,0x00,0x80,0x30]
 #CHECK: csg	%r0, %r0, -1            # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x30]
 #CHECK: csg	%r0, %r0, 0             # encoding: [0xeb,0x00,0x00,0x00,0x00,0x30]
@@ -6181,6 +6307,18 @@
         csst	0(%r1), 1(%r15), %r2
         csst	0(%r1), 4095(%r15), %r2
 
+#CHECK: csxtr	%r0, %f0, 0             # encoding: [0xb3,0xeb,0x00,0x00]
+#CHECK: csxtr	%r0, %f13, 0            # encoding: [0xb3,0xeb,0x00,0x0d]
+#CHECK: csxtr	%r0, %f0, 15            # encoding: [0xb3,0xeb,0x0f,0x00]
+#CHECK: csxtr	%r4, %f5, 6             # encoding: [0xb3,0xeb,0x06,0x45]
+#CHECK: csxtr	%r14, %f0, 0            # encoding: [0xb3,0xeb,0x00,0xe0]
+
+	csxtr	%r0, %f0, 0
+	csxtr	%r0, %f13, 0
+	csxtr	%r0, %f0, 15
+	csxtr	%r4, %f5, 6
+	csxtr	%r14, %f0, 0
+
 #CHECK: csy	%r0, %r0, -524288       # encoding: [0xeb,0x00,0x00,0x00,0x80,0x14]
 #CHECK: csy	%r0, %r0, -1            # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x14]
 #CHECK: csy	%r0, %r0, 0             # encoding: [0xeb,0x00,0x00,0x00,0x00,0x14]
@@ -6281,6 +6419,18 @@
 	cu42	%r14, %r0
 	cu42	%r6, %r8
 
+#CHECK: cudtr	%r0, %f0                # encoding: [0xb3,0xe2,0x00,0x00]
+#CHECK: cudtr	%r0, %f15               # encoding: [0xb3,0xe2,0x00,0x0f]
+#CHECK: cudtr	%r15, %f0               # encoding: [0xb3,0xe2,0x00,0xf0]
+#CHECK: cudtr	%r7, %f8                # encoding: [0xb3,0xe2,0x00,0x78]
+#CHECK: cudtr	%r15, %f15              # encoding: [0xb3,0xe2,0x00,0xff]
+
+	cudtr	%r0, %f0
+	cudtr	%r0, %f15
+	cudtr	%r15, %f0
+	cudtr	%r7, %f8
+	cudtr	%r15, %f15
+
 #CHECK: cuse	%r0, %r8                # encoding: [0xb2,0x57,0x00,0x08]
 #CHECK: cuse	%r0, %r14               # encoding: [0xb2,0x57,0x00,0x0e]
 #CHECK: cuse	%r14, %r0               # encoding: [0xb2,0x57,0x00,0xe0]
@@ -6319,6 +6469,18 @@
 	cuutf	%r4, %r12, 0
 	cuutf	%r4, %r12, 15
 
+#CHECK: cuxtr	%r0, %f0                # encoding: [0xb3,0xea,0x00,0x00]
+#CHECK: cuxtr	%r0, %f13               # encoding: [0xb3,0xea,0x00,0x0d]
+#CHECK: cuxtr	%r14, %f0               # encoding: [0xb3,0xea,0x00,0xe0]
+#CHECK: cuxtr	%r6, %f8                # encoding: [0xb3,0xea,0x00,0x68]
+#CHECK: cuxtr	%r14, %f13              # encoding: [0xb3,0xea,0x00,0xed]
+
+	cuxtr	%r0, %f0
+	cuxtr	%r0, %f13
+	cuxtr	%r14, %f0
+	cuxtr	%r6, %f8
+	cuxtr	%r14, %f13
+
 #CHECK: cvb	%r0, 0                  # encoding: [0x4f,0x00,0x00,0x00]
 #CHECK: cvb	%r0, 4095               # encoding: [0x4f,0x00,0x0f,0xff]
 #CHECK: cvb	%r0, 0(%r1)             # encoding: [0x4f,0x00,0x10,0x00]
@@ -6497,6 +6659,18 @@
 	cxgr	%f8, %r7
 	cxgr	%f13, %r15
 
+#CHECK: cxgtr	%f0, %r0                # encoding: [0xb3,0xf9,0x00,0x00]
+#CHECK: cxgtr	%f0, %r15               # encoding: [0xb3,0xf9,0x00,0x0f]
+#CHECK: cxgtr	%f13, %r0               # encoding: [0xb3,0xf9,0x00,0xd0]
+#CHECK: cxgtr	%f8, %r7                # encoding: [0xb3,0xf9,0x00,0x87]
+#CHECK: cxgtr	%f13, %r15              # encoding: [0xb3,0xf9,0x00,0xdf]
+
+	cxgtr	%f0, %r0
+	cxgtr	%f0, %r15
+	cxgtr	%f13, %r0
+	cxgtr	%f8, %r7
+	cxgtr	%f13, %r15
+
 #CHECK: cxr	%f0, %f0                # encoding: [0xb3,0x69,0x00,0x00]
 #CHECK: cxr	%f0, %f13               # encoding: [0xb3,0x69,0x00,0x0d]
 #CHECK: cxr	%f8, %f8                # encoding: [0xb3,0x69,0x00,0x88]
@@ -6507,6 +6681,40 @@
 	cxr	%f8, %f8
 	cxr	%f13, %f0
 
+#CHECK: cxstr	%f0, %r0                # encoding: [0xb3,0xfb,0x00,0x00]
+#CHECK: cxstr	%f0, %r14               # encoding: [0xb3,0xfb,0x00,0x0e]
+#CHECK: cxstr	%f13, %r0               # encoding: [0xb3,0xfb,0x00,0xd0]
+#CHECK: cxstr	%f8, %r6                # encoding: [0xb3,0xfb,0x00,0x86]
+#CHECK: cxstr	%f13, %r14              # encoding: [0xb3,0xfb,0x00,0xde]
+
+	cxstr	%f0, %r0
+	cxstr	%f0, %r14
+	cxstr	%f13, %r0
+	cxstr	%f8, %r6
+	cxstr	%f13, %r14
+
+#CHECK: cxtr	%f0, %f0                # encoding: [0xb3,0xec,0x00,0x00]
+#CHECK: cxtr	%f0, %f13               # encoding: [0xb3,0xec,0x00,0x0d]
+#CHECK: cxtr	%f8, %f8                # encoding: [0xb3,0xec,0x00,0x88]
+#CHECK: cxtr	%f13, %f0               # encoding: [0xb3,0xec,0x00,0xd0]
+
+	cxtr	%f0, %f0
+	cxtr	%f0, %f13
+	cxtr	%f8, %f8
+	cxtr	%f13, %f0
+
+#CHECK: cxutr	%f0, %r0                # encoding: [0xb3,0xfa,0x00,0x00]
+#CHECK: cxutr	%f0, %r14               # encoding: [0xb3,0xfa,0x00,0x0e]
+#CHECK: cxutr	%f13, %r0               # encoding: [0xb3,0xfa,0x00,0xd0]
+#CHECK: cxutr	%f8, %r6                # encoding: [0xb3,0xfa,0x00,0x86]
+#CHECK: cxutr	%f13, %r14              # encoding: [0xb3,0xfa,0x00,0xde]
+
+	cxutr	%f0, %r0
+	cxutr	%f0, %r14
+	cxutr	%f13, %r0
+	cxutr	%f8, %r6
+	cxutr	%f13, %r14
+
 #CHECK: cy	%r0, -524288            # encoding: [0xe3,0x00,0x00,0x00,0x80,0x59]
 #CHECK: cy	%r0, -1                 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x59]
 #CHECK: cy	%r0, 0                  # encoding: [0xe3,0x00,0x00,0x00,0x00,0x59]
@@ -6597,6 +6805,18 @@
 	ddr	%f7, %f8
 	ddr	%f15, %f0
 
+#CHECK: ddtr	%f0, %f0, %f0           # encoding: [0xb3,0xd1,0x00,0x00]
+#CHECK: ddtr	%f0, %f0, %f15          # encoding: [0xb3,0xd1,0xf0,0x00]
+#CHECK: ddtr	%f0, %f15, %f0          # encoding: [0xb3,0xd1,0x00,0x0f]
+#CHECK: ddtr	%f15, %f0, %f0          # encoding: [0xb3,0xd1,0x00,0xf0]
+#CHECK: ddtr	%f7, %f8, %f9           # encoding: [0xb3,0xd1,0x90,0x78]
+
+	ddtr	%f0, %f0, %f0
+	ddtr	%f0, %f0, %f15
+	ddtr	%f0, %f15, %f0
+	ddtr	%f15, %f0, %f0
+	ddtr	%f7, %f8, %f9
+
 #CHECK: de	%f0, 0                  # encoding: [0x7d,0x00,0x00,0x00]
 #CHECK: de	%f0, 4095               # encoding: [0x7d,0x00,0x0f,0xff]
 #CHECK: de	%f0, 0(%r1)             # encoding: [0x7d,0x00,0x10,0x00]
@@ -6865,6 +7085,18 @@
 	dxr	%f8, %f8
 	dxr	%f13, %f0
 
+#CHECK: dxtr	%f0, %f0, %f0           # encoding: [0xb3,0xd9,0x00,0x00]
+#CHECK: dxtr	%f0, %f0, %f13          # encoding: [0xb3,0xd9,0xd0,0x00]
+#CHECK: dxtr	%f0, %f13, %f0          # encoding: [0xb3,0xd9,0x00,0x0d]
+#CHECK: dxtr	%f13, %f0, %f0          # encoding: [0xb3,0xd9,0x00,0xd0]
+#CHECK: dxtr	%f8, %f8, %f8           # encoding: [0xb3,0xd9,0x80,0x88]
+
+	dxtr	%f0, %f0, %f0
+	dxtr	%f0, %f0, %f13
+	dxtr	%f0, %f13, %f0
+	dxtr	%f13, %f0, %f0
+	dxtr	%f8, %f8, %f8
+
 #CHECK: ear	%r0, %a0                # encoding: [0xb2,0x4f,0x00,0x00]
 #CHECK: ear	%r0, %a15               # encoding: [0xb2,0x4f,0x00,0x0f]
 #CHECK: ear	%r15, %a0               # encoding: [0xb2,0x4f,0x00,0xf0]
@@ -6971,6 +7203,26 @@
 	edmk	0(256,%r1), 0
 	edmk	0(256,%r15), 0
 
+#CHECK: eedtr	%f0, %f9                # encoding: [0xb3,0xe5,0x00,0x09]
+#CHECK: eedtr	%f0, %f15               # encoding: [0xb3,0xe5,0x00,0x0f]
+#CHECK: eedtr	%f15, %f0               # encoding: [0xb3,0xe5,0x00,0xf0]
+#CHECK: eedtr	%f15, %f9               # encoding: [0xb3,0xe5,0x00,0xf9]
+
+	eedtr	%f0,%f9
+	eedtr	%f0,%f15
+	eedtr	%f15,%f0
+	eedtr	%f15,%f9
+
+#CHECK: eextr	%f0, %f8                # encoding: [0xb3,0xed,0x00,0x08]
+#CHECK: eextr	%f0, %f13               # encoding: [0xb3,0xed,0x00,0x0d]
+#CHECK: eextr	%f13, %f0               # encoding: [0xb3,0xed,0x00,0xd0]
+#CHECK: eextr	%f13, %f9               # encoding: [0xb3,0xed,0x00,0xd9]
+
+	eextr	%f0,%f8
+	eextr	%f0,%f13
+	eextr	%f13,%f0
+	eextr	%f13,%f9
+
 #CHECK: efpc	%r0                     # encoding: [0xb3,0x8c,0x00,0x00]
 #CHECK: efpc	%r1                     # encoding: [0xb3,0x8c,0x00,0x10]
 #CHECK: efpc	%r15                    # encoding: [0xb3,0x8c,0x00,0xf0]
@@ -6989,6 +7241,26 @@
 	epsw	%r15, %r0
 	epsw	%r15, %r8
 
+#CHECK: esdtr	%f0, %f9                # encoding: [0xb3,0xe7,0x00,0x09]
+#CHECK: esdtr	%f0, %f15               # encoding: [0xb3,0xe7,0x00,0x0f]
+#CHECK: esdtr	%f15, %f0               # encoding: [0xb3,0xe7,0x00,0xf0]
+#CHECK: esdtr	%f15, %f9               # encoding: [0xb3,0xe7,0x00,0xf9]
+
+	esdtr	%f0,%f9
+	esdtr	%f0,%f15
+	esdtr	%f15,%f0
+	esdtr	%f15,%f9
+
+#CHECK: esxtr	%f0, %f8                # encoding: [0xb3,0xef,0x00,0x08]
+#CHECK: esxtr	%f0, %f13               # encoding: [0xb3,0xef,0x00,0x0d]
+#CHECK: esxtr	%f13, %f0               # encoding: [0xb3,0xef,0x00,0xd0]
+#CHECK: esxtr	%f13, %f9               # encoding: [0xb3,0xef,0x00,0xd9]
+
+	esxtr	%f0,%f8
+	esxtr	%f0,%f13
+	esxtr	%f13,%f0
+	esxtr	%f13,%f9
+
 #CHECK: ex	%r0, 0                  # encoding: [0x44,0x00,0x00,0x00]
 #CHECK: ex	%r0, 4095               # encoding: [0x44,0x00,0x0f,0xff]
 #CHECK: ex	%r0, 0(%r1)             # encoding: [0x44,0x00,0x10,0x00]
@@ -7064,6 +7336,20 @@
 	fidr	%f4, %f6
 	fidr	%f15, %f0
 
+#CHECK: fidtr	%f0, 0, %f0, 0          # encoding: [0xb3,0xd7,0x00,0x00]
+#CHECK: fidtr	%f0, 0, %f0, 15         # encoding: [0xb3,0xd7,0x0f,0x00]
+#CHECK: fidtr	%f0, 0, %f15, 0         # encoding: [0xb3,0xd7,0x00,0x0f]
+#CHECK: fidtr	%f0, 15, %f0, 0         # encoding: [0xb3,0xd7,0xf0,0x00]
+#CHECK: fidtr	%f4, 5, %f6, 7          # encoding: [0xb3,0xd7,0x57,0x46]
+#CHECK: fidtr	%f15, 0, %f0, 0         # encoding: [0xb3,0xd7,0x00,0xf0]
+
+	fidtr	%f0, 0, %f0, 0
+	fidtr	%f0, 0, %f0, 15
+	fidtr	%f0, 0, %f15, 0
+	fidtr	%f0, 15, %f0, 0
+	fidtr	%f4, 5, %f6, 7
+	fidtr	%f15, 0, %f0, 0
+
 #CHECK: fiebr	%f0, 0, %f0             # encoding: [0xb3,0x57,0x00,0x00]
 #CHECK: fiebr	%f0, 0, %f15            # encoding: [0xb3,0x57,0x00,0x0f]
 #CHECK: fiebr	%f0, 15, %f0            # encoding: [0xb3,0x57,0xf0,0x00]
@@ -7108,6 +7394,20 @@
 	fixr	%f4, %f8
 	fixr	%f13, %f0
 
+#CHECK: fixtr	%f0, 0, %f0, 0          # encoding: [0xb3,0xdf,0x00,0x00]
+#CHECK: fixtr	%f0, 0, %f0, 15         # encoding: [0xb3,0xdf,0x0f,0x00]
+#CHECK: fixtr	%f0, 0, %f13, 0         # encoding: [0xb3,0xdf,0x00,0x0d]
+#CHECK: fixtr	%f0, 15, %f0, 0         # encoding: [0xb3,0xdf,0xf0,0x00]
+#CHECK: fixtr	%f4, 5, %f8, 9          # encoding: [0xb3,0xdf,0x59,0x48]
+#CHECK: fixtr	%f13, 0, %f0, 0         # encoding: [0xb3,0xdf,0x00,0xd0]
+
+	fixtr	%f0, 0, %f0, 0
+	fixtr	%f0, 0, %f0, 15
+	fixtr	%f0, 0, %f13, 0
+	fixtr	%f0, 15, %f0, 0
+	fixtr	%f4, 5, %f8, 9
+	fixtr	%f13, 0, %f0, 0
+
 #CHECK: flogr	%r0, %r0                # encoding: [0xb9,0x83,0x00,0x00]
 #CHECK: flogr	%r0, %r15               # encoding: [0xb9,0x83,0x00,0x0f]
 #CHECK: flogr	%r10, %r9               # encoding: [0xb9,0x83,0x00,0xa9]
@@ -7236,6 +7536,34 @@
 	icy	%r0, 524287(%r15,%r1)
 	icy	%r15, 0
 
+#CHECK: iedtr	%f0, %f0, %f0           # encoding: [0xb3,0xf6,0x00,0x00]
+#CHECK: iedtr	%f0, %f0, %f15          # encoding: [0xb3,0xf6,0x00,0x0f]
+#CHECK: iedtr	%f0, %f15, %f0          # encoding: [0xb3,0xf6,0xf0,0x00]
+#CHECK: iedtr	%f15, %f0, %f0          # encoding: [0xb3,0xf6,0x00,0xf0]
+#CHECK: iedtr	%f1, %f2, %f3           # encoding: [0xb3,0xf6,0x20,0x13]
+#CHECK: iedtr	%f15, %f15, %f15        # encoding: [0xb3,0xf6,0xf0,0xff]
+
+	iedtr	%f0, %f0, %f0
+	iedtr	%f0, %f0, %f15
+	iedtr	%f0, %f15, %f0
+	iedtr	%f15, %f0, %f0
+	iedtr	%f1, %f2, %f3
+	iedtr	%f15, %f15, %f15
+
+#CHECK: iextr	%f0, %f0, %f0           # encoding: [0xb3,0xfe,0x00,0x00]
+#CHECK: iextr	%f0, %f0, %f13          # encoding: [0xb3,0xfe,0x00,0x0d]
+#CHECK: iextr	%f0, %f13, %f0          # encoding: [0xb3,0xfe,0xd0,0x00]
+#CHECK: iextr	%f13, %f0, %f0          # encoding: [0xb3,0xfe,0x00,0xd0]
+#CHECK: iextr	%f1, %f8, %f4           # encoding: [0xb3,0xfe,0x80,0x14]
+#CHECK: iextr	%f13, %f13, %f13        # encoding: [0xb3,0xfe,0xd0,0xdd]
+
+	iextr	%f0, %f0, %f0
+	iextr	%f0, %f0, %f13
+	iextr	%f0, %f13, %f0
+	iextr	%f13, %f0, %f0
+	iextr	%f1, %f8, %f4
+	iextr	%f13, %f13, %f13
+
 #CHECK: iihf	%r0, 0                  # encoding: [0xc0,0x08,0x00,0x00,0x00,0x00]
 #CHECK: iihf	%r0, 4294967295         # encoding: [0xc0,0x08,0xff,0xff,0xff,0xff]
 #CHECK: iihf	%r15, 0                 # encoding: [0xc0,0xf8,0x00,0x00,0x00,0x00]
@@ -7326,6 +7654,16 @@
 	kdbr	%f7, %f8
 	kdbr	%f15, %f0
 
+#CHECK: kdtr	%f0, %f0                # encoding: [0xb3,0xe0,0x00,0x00]
+#CHECK: kdtr	%f0, %f15               # encoding: [0xb3,0xe0,0x00,0x0f]
+#CHECK: kdtr	%f7, %f8                # encoding: [0xb3,0xe0,0x00,0x78]
+#CHECK: kdtr	%f15, %f0               # encoding: [0xb3,0xe0,0x00,0xf0]
+
+	kdtr	%f0, %f0
+	kdtr	%f0, %f15
+	kdtr	%f7, %f8
+	kdtr	%f15, %f0
+
 #CHECK: keb	%f0, 0                  # encoding: [0xed,0x00,0x00,0x00,0x00,0x08]
 #CHECK: keb	%f0, 4095               # encoding: [0xed,0x00,0x0f,0xff,0x00,0x08]
 #CHECK: keb	%f0, 0(%r1)             # encoding: [0xed,0x00,0x10,0x00,0x00,0x08]
@@ -7412,6 +7750,16 @@
 	kxbr	%f8, %f8
 	kxbr	%f13, %f0
 
+#CHECK: kxtr	%f0, %f0                # encoding: [0xb3,0xe8,0x00,0x00]
+#CHECK: kxtr	%f0, %f13               # encoding: [0xb3,0xe8,0x00,0x0d]
+#CHECK: kxtr	%f8, %f8                # encoding: [0xb3,0xe8,0x00,0x88]
+#CHECK: kxtr	%f13, %f0               # encoding: [0xb3,0xe8,0x00,0xd0]
+
+	kxtr	%f0, %f0
+	kxtr	%f0, %f13
+	kxtr	%f8, %f8
+	kxtr	%f13, %f0
+
 #CHECK: l	%r0, 0                  # encoding: [0x58,0x00,0x00,0x00]
 #CHECK: l	%r0, 4095               # encoding: [0x58,0x00,0x0f,0xff]
 #CHECK: l	%r0, 0(%r1)             # encoding: [0x58,0x00,0x10,0x00]
@@ -7775,6 +8123,16 @@
 	lder	%f7, %f8
 	lder	%f15, %f0
 
+#CHECK: ldetr	%f0, %f0, 15            # encoding: [0xb3,0xd4,0x0f,0x00]
+#CHECK: ldetr	%f0, %f15, 0            # encoding: [0xb3,0xd4,0x00,0x0f]
+#CHECK: ldetr	%f7, %f8, 9             # encoding: [0xb3,0xd4,0x09,0x78]
+#CHECK: ldetr	%f15, %f0, 0            # encoding: [0xb3,0xd4,0x00,0xf0]
+
+	ldetr	%f0, %f0, 15
+	ldetr	%f0, %f15, 0
+	ldetr	%f7, %f8, 9
+	ldetr	%f15, %f0, 0
+
 #CHECK: ldgr	%f0, %r0                # encoding: [0xb3,0xc1,0x00,0x00]
 #CHECK: ldgr	%f0, %r15               # encoding: [0xb3,0xc1,0x00,0x0f]
 #CHECK: ldgr	%f15, %r0               # encoding: [0xb3,0xc1,0x00,0xf0]
@@ -7821,6 +8179,20 @@
 	ldxr	%f15, %f0
 	ldxr	%f15, %f13
 
+#CHECK: ldxtr	%f0, 0, %f0, 0          # encoding: [0xb3,0xdd,0x00,0x00]
+#CHECK: ldxtr	%f0, 0, %f0, 15         # encoding: [0xb3,0xdd,0x0f,0x00]
+#CHECK: ldxtr	%f0, 0, %f13, 0         # encoding: [0xb3,0xdd,0x00,0x0d]
+#CHECK: ldxtr	%f0, 15, %f0, 0         # encoding: [0xb3,0xdd,0xf0,0x00]
+#CHECK: ldxtr	%f4, 5, %f8, 9          # encoding: [0xb3,0xdd,0x59,0x48]
+#CHECK: ldxtr	%f13, 0, %f0, 0         # encoding: [0xb3,0xdd,0x00,0xd0]
+
+	ldxtr	%f0, 0, %f0, 0
+	ldxtr	%f0, 0, %f0, 15
+	ldxtr	%f0, 0, %f13, 0
+	ldxtr	%f0, 15, %f0, 0
+	ldxtr	%f4, 5, %f8, 9
+	ldxtr	%f13, 0, %f0, 0
+
 #CHECK: ldy	%f0, -524288            # encoding: [0xed,0x00,0x00,0x00,0x80,0x65]
 #CHECK: ldy	%f0, -1                 # encoding: [0xed,0x00,0x0f,0xff,0xff,0x65]
 #CHECK: ldy	%f0, 0                  # encoding: [0xed,0x00,0x00,0x00,0x00,0x65]
@@ -7883,6 +8255,20 @@
 	ledr	%f15, %f0
 	ledr	%f15, %f15
 
+#CHECK: ledtr	%f0, 0, %f0, 0          # encoding: [0xb3,0xd5,0x00,0x00]
+#CHECK: ledtr	%f0, 0, %f0, 15         # encoding: [0xb3,0xd5,0x0f,0x00]
+#CHECK: ledtr	%f0, 0, %f15, 0         # encoding: [0xb3,0xd5,0x00,0x0f]
+#CHECK: ledtr	%f0, 15, %f0, 0         # encoding: [0xb3,0xd5,0xf0,0x00]
+#CHECK: ledtr	%f4, 5, %f6, 7          # encoding: [0xb3,0xd5,0x57,0x46]
+#CHECK: ledtr	%f15, 0, %f0, 0         # encoding: [0xb3,0xd5,0x00,0xf0]
+
+	ledtr	%f0, 0, %f0, 0
+	ledtr	%f0, 0, %f0, 15
+	ledtr	%f0, 0, %f15, 0
+	ledtr	%f0, 15, %f0, 0
+	ledtr	%f4, 5, %f6, 7
+	ledtr	%f15, 0, %f0, 0
+
 #CHECK: ler	%f0, %f9                # encoding: [0x38,0x09]
 #CHECK: ler	%f0, %f15               # encoding: [0x38,0x0f]
 #CHECK: ler	%f15, %f0               # encoding: [0x38,0xf0]
@@ -9220,6 +9606,16 @@
 	ltdr	%f15,%f0
 	ltdr	%f15,%f9
 
+#CHECK: ltdtr	%f0, %f9                # encoding: [0xb3,0xd6,0x00,0x09]
+#CHECK: ltdtr	%f0, %f15               # encoding: [0xb3,0xd6,0x00,0x0f]
+#CHECK: ltdtr	%f15, %f0               # encoding: [0xb3,0xd6,0x00,0xf0]
+#CHECK: ltdtr	%f15, %f9               # encoding: [0xb3,0xd6,0x00,0xf9]
+
+	ltdtr	%f0,%f9
+	ltdtr	%f0,%f15
+	ltdtr	%f15,%f0
+	ltdtr	%f15,%f9
+
 #CHECK: ltebr	%f0, %f9                # encoding: [0xb3,0x02,0x00,0x09]
 #CHECK: ltebr	%f0, %f15               # encoding: [0xb3,0x02,0x00,0x0f]
 #CHECK: ltebr	%f15, %f0               # encoding: [0xb3,0x02,0x00,0xf0]
@@ -9334,6 +9730,16 @@
 	ltxr	%f13,%f0
 	ltxr	%f13,%f9
 
+#CHECK: ltxtr	%f0, %f9                # encoding: [0xb3,0xde,0x00,0x09]
+#CHECK: ltxtr	%f0, %f13               # encoding: [0xb3,0xde,0x00,0x0d]
+#CHECK: ltxtr	%f13, %f0               # encoding: [0xb3,0xde,0x00,0xd0]
+#CHECK: ltxtr	%f13, %f9               # encoding: [0xb3,0xde,0x00,0xd9]
+
+	ltxtr	%f0,%f9
+	ltxtr	%f0,%f13
+	ltxtr	%f13,%f0
+	ltxtr	%f13,%f9
+
 #CHECK: lxd	%f0, 4095               # encoding: [0xed,0x00,0x0f,0xff,0x00,0x25]
 #CHECK: lxd	%f0, 0(%r1)             # encoding: [0xed,0x00,0x10,0x00,0x00,0x25]
 #CHECK: lxd	%f0, 0(%r15)            # encoding: [0xed,0x00,0xf0,0x00,0x00,0x25]
@@ -9384,6 +9790,16 @@
 	lxdr	%f13,%f0
 	lxdr	%f13,%f15
 
+#CHECK: lxdtr	%f0, %f0, 15            # encoding: [0xb3,0xdc,0x0f,0x00]
+#CHECK: lxdtr	%f0, %f15, 0            # encoding: [0xb3,0xdc,0x00,0x0f]
+#CHECK: lxdtr	%f5, %f8, 9             # encoding: [0xb3,0xdc,0x09,0x58]
+#CHECK: lxdtr	%f13, %f0, 0            # encoding: [0xb3,0xdc,0x00,0xd0]
+
+	lxdtr	%f0, %f0, 15
+	lxdtr	%f0, %f15, 0
+	lxdtr	%f5, %f8, 9
+	lxdtr	%f13, %f0, 0
+
 #CHECK: lxe	%f0, 4095               # encoding: [0xed,0x00,0x0f,0xff,0x00,0x26]
 #CHECK: lxe	%f0, 0(%r1)             # encoding: [0xed,0x00,0x10,0x00,0x00,0x26]
 #CHECK: lxe	%f0, 0(%r15)            # encoding: [0xed,0x00,0xf0,0x00,0x00,0x26]
@@ -9864,6 +10280,18 @@
 	mdr	%f7, %f8
 	mdr	%f15, %f0
 
+#CHECK: mdtr	%f0, %f0, %f0           # encoding: [0xb3,0xd0,0x00,0x00]
+#CHECK: mdtr	%f0, %f0, %f15          # encoding: [0xb3,0xd0,0xf0,0x00]
+#CHECK: mdtr	%f0, %f15, %f0          # encoding: [0xb3,0xd0,0x00,0x0f]
+#CHECK: mdtr	%f15, %f0, %f0          # encoding: [0xb3,0xd0,0x00,0xf0]
+#CHECK: mdtr	%f7, %f8, %f9           # encoding: [0xb3,0xd0,0x90,0x78]
+
+	mdtr	%f0, %f0, %f0
+	mdtr	%f0, %f0, %f15
+	mdtr	%f0, %f15, %f0
+	mdtr	%f15, %f0, %f0
+	mdtr	%f7, %f8, %f9
+
 #CHECK: me	%f0, 0                  # encoding: [0x7c,0x00,0x00,0x00]
 #CHECK: me	%f0, 4095               # encoding: [0x7c,0x00,0x0f,0xff]
 #CHECK: me	%f0, 0(%r1)             # encoding: [0x7c,0x00,0x10,0x00]
@@ -10812,6 +11240,18 @@
 	mxr	%f8, %f5
 	mxr	%f13, %f13
 
+#CHECK: mxtr	%f0, %f0, %f0           # encoding: [0xb3,0xd8,0x00,0x00]
+#CHECK: mxtr	%f0, %f0, %f13          # encoding: [0xb3,0xd8,0xd0,0x00]
+#CHECK: mxtr	%f0, %f13, %f0          # encoding: [0xb3,0xd8,0x00,0x0d]
+#CHECK: mxtr	%f13, %f0, %f0          # encoding: [0xb3,0xd8,0x00,0xd0]
+#CHECK: mxtr	%f8, %f8, %f8           # encoding: [0xb3,0xd8,0x80,0x88]
+
+	mxtr	%f0, %f0, %f0
+	mxtr	%f0, %f0, %f13
+	mxtr	%f0, %f13, %f0
+	mxtr	%f13, %f0, %f0
+	mxtr	%f8, %f8, %f8
+
 #CHECK: my	%f0, %f0, 0             # encoding: [0xed,0x00,0x00,0x00,0x00,0x3b]
 #CHECK: my	%f0, %f0, 4095          # encoding: [0xed,0x00,0x0f,0xff,0x00,0x3b]
 #CHECK: my	%f0, %f0, 0(%r1)        # encoding: [0xed,0x00,0x10,0x00,0x00,0x3b]
@@ -11409,6 +11849,9 @@
 	pfdrl	7, frob at PLT
 	pfdrl	8, frob at PLT
 
+#CHECK: pfpo                            # encoding: [0x01,0x0a]
+        pfpo
+
 #CHECK: pka	0, 0(1)                 # encoding: [0xe9,0x00,0x00,0x00,0x00,0x00]
 #CHECK: pka	0, 0(1,%r1)             # encoding: [0xe9,0x00,0x00,0x00,0x10,0x00]
 #CHECK: pka	0, 0(1,%r15)            # encoding: [0xe9,0x00,0x00,0x00,0xf0,0x00]
@@ -11478,6 +11921,34 @@
 #CHECK: pr                              # encoding: [0x01,0x01]
         pr
 
+#CHECK: qadtr	%f0, %f0, %f0, 0        # encoding: [0xb3,0xf5,0x00,0x00]
+#CHECK: qadtr	%f0, %f0, %f0, 15       # encoding: [0xb3,0xf5,0x0f,0x00]
+#CHECK: qadtr	%f0, %f0, %f15, 0       # encoding: [0xb3,0xf5,0x00,0x0f]
+#CHECK: qadtr	%f0, %f15, %f0, 0       # encoding: [0xb3,0xf5,0xf0,0x00]
+#CHECK: qadtr	%f4, %f5, %f6, 7        # encoding: [0xb3,0xf5,0x57,0x46]
+#CHECK: qadtr	%f15, %f0, %f0, 0       # encoding: [0xb3,0xf5,0x00,0xf0]
+
+	qadtr	%f0, %f0, %f0, 0
+	qadtr	%f0, %f0, %f0, 15
+	qadtr	%f0, %f0, %f15, 0
+	qadtr	%f0, %f15, %f0, 0
+	qadtr	%f4, %f5, %f6, 7
+	qadtr	%f15, %f0, %f0, 0
+
+#CHECK: qaxtr	%f0, %f0, %f0, 0        # encoding: [0xb3,0xfd,0x00,0x00]
+#CHECK: qaxtr	%f0, %f0, %f0, 15       # encoding: [0xb3,0xfd,0x0f,0x00]
+#CHECK: qaxtr	%f0, %f0, %f13, 0       # encoding: [0xb3,0xfd,0x00,0x0d]
+#CHECK: qaxtr	%f0, %f13, %f0, 0       # encoding: [0xb3,0xfd,0xd0,0x00]
+#CHECK: qaxtr	%f8, %f8, %f8, 8        # encoding: [0xb3,0xfd,0x88,0x88]
+#CHECK: qaxtr	%f13, %f0, %f0, 0       # encoding: [0xb3,0xfd,0x00,0xd0]
+
+	qaxtr	%f0, %f0, %f0, 0
+	qaxtr	%f0, %f0, %f0, 15
+	qaxtr	%f0, %f0, %f13, 0
+	qaxtr	%f0, %f13, %f0, 0
+	qaxtr	%f8, %f8, %f8, 8
+	qaxtr	%f13, %f0, %f0, 0
+
 #CHECK: risbg	%r0, %r0, 0, 0, 0       # encoding: [0xec,0x00,0x00,0x00,0x00,0x55]
 #CHECK: risbg	%r0, %r0, 0, 0, 63      # encoding: [0xec,0x00,0x00,0x00,0x3f,0x55]
 #CHECK: risbg	%r0, %r0, 0, 255, 0     # encoding: [0xec,0x00,0x00,0xff,0x00,0x55]
@@ -11578,6 +12049,34 @@
 	rosbg	%r15,%r0,0,0,0
 	rosbg	%r4,%r5,6,7,8
 
+#CHECK: rrdtr	%f0, %f0, %f0, 0        # encoding: [0xb3,0xf7,0x00,0x00]
+#CHECK: rrdtr	%f0, %f0, %f0, 15       # encoding: [0xb3,0xf7,0x0f,0x00]
+#CHECK: rrdtr	%f0, %f0, %f15, 0       # encoding: [0xb3,0xf7,0x00,0x0f]
+#CHECK: rrdtr	%f0, %f15, %f0, 0       # encoding: [0xb3,0xf7,0xf0,0x00]
+#CHECK: rrdtr	%f4, %f5, %f6, 7        # encoding: [0xb3,0xf7,0x57,0x46]
+#CHECK: rrdtr	%f15, %f0, %f0, 0       # encoding: [0xb3,0xf7,0x00,0xf0]
+
+	rrdtr	%f0, %f0, %f0, 0
+	rrdtr	%f0, %f0, %f0, 15
+	rrdtr	%f0, %f0, %f15, 0
+	rrdtr	%f0, %f15, %f0, 0
+	rrdtr	%f4, %f5, %f6, 7
+	rrdtr	%f15, %f0, %f0, 0
+
+#CHECK: rrxtr	%f0, %f0, %f0, 0        # encoding: [0xb3,0xff,0x00,0x00]
+#CHECK: rrxtr	%f0, %f0, %f0, 15       # encoding: [0xb3,0xff,0x0f,0x00]
+#CHECK: rrxtr	%f0, %f0, %f13, 0       # encoding: [0xb3,0xff,0x00,0x0d]
+#CHECK: rrxtr	%f0, %f13, %f0, 0       # encoding: [0xb3,0xff,0xd0,0x00]
+#CHECK: rrxtr	%f8, %f8, %f8, 8        # encoding: [0xb3,0xff,0x88,0x88]
+#CHECK: rrxtr	%f13, %f0, %f0, 0       # encoding: [0xb3,0xff,0x00,0xd0]
+
+	rrxtr	%f0, %f0, %f0, 0
+	rrxtr	%f0, %f0, %f0, 15
+	rrxtr	%f0, %f0, %f13, 0
+	rrxtr	%f0, %f13, %f0, 0
+	rrxtr	%f8, %f8, %f8, 8
+	rrxtr	%f13, %f0, %f0, 0
+
 #CHECK: rxsbg	%r0, %r0, 0, 0, 0       # encoding: [0xec,0x00,0x00,0x00,0x00,0x57]
 #CHECK: rxsbg	%r0, %r0, 0, 0, 63      # encoding: [0xec,0x00,0x00,0x00,0x3f,0x57]
 #CHECK: rxsbg	%r0, %r0, 0, 255, 0     # encoding: [0xec,0x00,0x00,0xff,0x00,0x57]
@@ -11682,6 +12181,18 @@
 	sdr	%f7, %f8
 	sdr	%f15, %f0
 
+#CHECK: sdtr	%f0, %f0, %f0           # encoding: [0xb3,0xd3,0x00,0x00]
+#CHECK: sdtr	%f0, %f0, %f15          # encoding: [0xb3,0xd3,0xf0,0x00]
+#CHECK: sdtr	%f0, %f15, %f0          # encoding: [0xb3,0xd3,0x00,0x0f]
+#CHECK: sdtr	%f15, %f0, %f0          # encoding: [0xb3,0xd3,0x00,0xf0]
+#CHECK: sdtr	%f7, %f8, %f9           # encoding: [0xb3,0xd3,0x90,0x78]
+
+	sdtr	%f0, %f0, %f0
+	sdtr	%f0, %f0, %f15
+	sdtr	%f0, %f15, %f0
+	sdtr	%f15, %f0, %f0
+	sdtr	%f7, %f8, %f9
+
 #CHECK: se	%f0, 0                  # encoding: [0x7b,0x00,0x00,0x00]
 #CHECK: se	%f0, 4095               # encoding: [0x7b,0x00,0x0f,0xff]
 #CHECK: se	%f0, 0(%r1)             # encoding: [0x7b,0x00,0x10,0x00]
@@ -12012,6 +12523,26 @@
 	sldl	%r0,4095(%r1)
 	sldl	%r0,4095(%r15)
 
+#CHECK: sldt	%f0, %f0, 0             # encoding: [0xed,0x00,0x00,0x00,0x00,0x40]
+#CHECK: sldt	%f0, %f0, 4095          # encoding: [0xed,0x00,0x0f,0xff,0x00,0x40]
+#CHECK: sldt	%f0, %f0, 0(%r1)        # encoding: [0xed,0x00,0x10,0x00,0x00,0x40]
+#CHECK: sldt	%f0, %f0, 0(%r15)       # encoding: [0xed,0x00,0xf0,0x00,0x00,0x40]
+#CHECK: sldt	%f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x40]
+#CHECK: sldt	%f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x40]
+#CHECK: sldt	%f0, %f15, 0            # encoding: [0xed,0xf0,0x00,0x00,0x00,0x40]
+#CHECK: sldt	%f15, %f0, 0            # encoding: [0xed,0x00,0x00,0x00,0xf0,0x40]
+#CHECK: sldt	%f15, %f15, 0           # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x40]
+
+	sldt	%f0, %f0, 0
+	sldt	%f0, %f0, 4095
+	sldt	%f0, %f0, 0(%r1)
+	sldt	%f0, %f0, 0(%r15)
+	sldt	%f0, %f0, 4095(%r1,%r15)
+	sldt	%f0, %f0, 4095(%r15,%r1)
+	sldt	%f0, %f15, 0
+	sldt	%f15, %f0, 0
+	sldt	%f15, %f15, 0
+
 #CHECK: slfi	%r0, 0                  # encoding: [0xc2,0x05,0x00,0x00,0x00,0x00]
 #CHECK: slfi	%r0, 4294967295         # encoding: [0xc2,0x05,0xff,0xff,0xff,0xff]
 #CHECK: slfi	%r15, 0                 # encoding: [0xc2,0xf5,0x00,0x00,0x00,0x00]
@@ -12146,6 +12677,26 @@
 	slr	%r15,%r0
 	slr	%r7,%r8
 
+#CHECK: slxt	%f0, %f0, 0             # encoding: [0xed,0x00,0x00,0x00,0x00,0x48]
+#CHECK: slxt	%f0, %f0, 4095          # encoding: [0xed,0x00,0x0f,0xff,0x00,0x48]
+#CHECK: slxt	%f0, %f0, 0(%r1)        # encoding: [0xed,0x00,0x10,0x00,0x00,0x48]
+#CHECK: slxt	%f0, %f0, 0(%r15)       # encoding: [0xed,0x00,0xf0,0x00,0x00,0x48]
+#CHECK: slxt	%f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x48]
+#CHECK: slxt	%f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x48]
+#CHECK: slxt	%f0, %f13, 0            # encoding: [0xed,0xd0,0x00,0x00,0x00,0x48]
+#CHECK: slxt	%f13, %f0, 0            # encoding: [0xed,0x00,0x00,0x00,0xd0,0x48]
+#CHECK: slxt	%f13, %f13, 0           # encoding: [0xed,0xd0,0x00,0x00,0xd0,0x48]
+
+	slxt	%f0, %f0, 0
+	slxt	%f0, %f0, 4095
+	slxt	%f0, %f0, 0(%r1)
+	slxt	%f0, %f0, 0(%r15)
+	slxt	%f0, %f0, 4095(%r1,%r15)
+	slxt	%f0, %f0, 4095(%r15,%r1)
+	slxt	%f0, %f13, 0
+	slxt	%f13, %f0, 0
+	slxt	%f13, %f13, 0
+
 #CHECK: sly	%r0, -524288            # encoding: [0xe3,0x00,0x00,0x00,0x80,0x5f]
 #CHECK: sly	%r0, -1                 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x5f]
 #CHECK: sly	%r0, 0                  # encoding: [0xe3,0x00,0x00,0x00,0x00,0x5f]
@@ -12420,6 +12971,26 @@
 	srdl	%r0,4095(%r1)
 	srdl	%r0,4095(%r15)
 
+#CHECK: srdt	%f0, %f0, 0             # encoding: [0xed,0x00,0x00,0x00,0x00,0x41]
+#CHECK: srdt	%f0, %f0, 4095          # encoding: [0xed,0x00,0x0f,0xff,0x00,0x41]
+#CHECK: srdt	%f0, %f0, 0(%r1)        # encoding: [0xed,0x00,0x10,0x00,0x00,0x41]
+#CHECK: srdt	%f0, %f0, 0(%r15)       # encoding: [0xed,0x00,0xf0,0x00,0x00,0x41]
+#CHECK: srdt	%f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x41]
+#CHECK: srdt	%f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x41]
+#CHECK: srdt	%f0, %f15, 0            # encoding: [0xed,0xf0,0x00,0x00,0x00,0x41]
+#CHECK: srdt	%f15, %f0, 0            # encoding: [0xed,0x00,0x00,0x00,0xf0,0x41]
+#CHECK: srdt	%f15, %f15, 0           # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x41]
+
+	srdt	%f0, %f0, 0
+	srdt	%f0, %f0, 4095
+	srdt	%f0, %f0, 0(%r1)
+	srdt	%f0, %f0, 0(%r15)
+	srdt	%f0, %f0, 4095(%r1,%r15)
+	srdt	%f0, %f0, 4095(%r15,%r1)
+	srdt	%f0, %f15, 0
+	srdt	%f15, %f0, 0
+	srdt	%f15, %f15, 0
+
 #CHECK: srl	%r0, 0                  # encoding: [0x88,0x00,0x00,0x00]
 #CHECK: srl	%r7, 0                  # encoding: [0x88,0x70,0x00,0x00]
 #CHECK: srl	%r15, 0                 # encoding: [0x88,0xf0,0x00,0x00]
@@ -12540,6 +13111,26 @@
 	srstu	%r15,%r0
 	srstu	%r7,%r8
 
+#CHECK: srxt	%f0, %f0, 0             # encoding: [0xed,0x00,0x00,0x00,0x00,0x49]
+#CHECK: srxt	%f0, %f0, 4095          # encoding: [0xed,0x00,0x0f,0xff,0x00,0x49]
+#CHECK: srxt	%f0, %f0, 0(%r1)        # encoding: [0xed,0x00,0x10,0x00,0x00,0x49]
+#CHECK: srxt	%f0, %f0, 0(%r15)       # encoding: [0xed,0x00,0xf0,0x00,0x00,0x49]
+#CHECK: srxt	%f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x49]
+#CHECK: srxt	%f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x49]
+#CHECK: srxt	%f0, %f13, 0            # encoding: [0xed,0xd0,0x00,0x00,0x00,0x49]
+#CHECK: srxt	%f13, %f0, 0            # encoding: [0xed,0x00,0x00,0x00,0xd0,0x49]
+#CHECK: srxt	%f13, %f13, 0           # encoding: [0xed,0xd0,0x00,0x00,0xd0,0x49]
+
+	srxt	%f0, %f0, 0
+	srxt	%f0, %f0, 4095
+	srxt	%f0, %f0, 0(%r1)
+	srxt	%f0, %f0, 0(%r15)
+	srxt	%f0, %f0, 4095(%r1,%r15)
+	srxt	%f0, %f0, 4095(%r15,%r1)
+	srxt	%f0, %f13, 0
+	srxt	%f13, %f0, 0
+	srxt	%f13, %f13, 0
+
 #CHECK: st	%r0, 0                  # encoding: [0x50,0x00,0x00,0x00]
 #CHECK: st	%r0, 4095               # encoding: [0x50,0x00,0x0f,0xff]
 #CHECK: st	%r0, 0(%r1)             # encoding: [0x50,0x00,0x10,0x00]
@@ -13341,6 +13932,18 @@
 	sxr	%f8, %f8
 	sxr	%f13, %f0
 
+#CHECK: sxtr	%f0, %f0, %f0           # encoding: [0xb3,0xdb,0x00,0x00]
+#CHECK: sxtr	%f0, %f0, %f13          # encoding: [0xb3,0xdb,0xd0,0x00]
+#CHECK: sxtr	%f0, %f13, %f0          # encoding: [0xb3,0xdb,0x00,0x0d]
+#CHECK: sxtr	%f13, %f0, %f0          # encoding: [0xb3,0xdb,0x00,0xd0]
+#CHECK: sxtr	%f8, %f8, %f8           # encoding: [0xb3,0xdb,0x80,0x88]
+
+	sxtr	%f0, %f0, %f0
+	sxtr	%f0, %f0, %f13
+	sxtr	%f0, %f13, %f0
+	sxtr	%f13, %f0, %f0
+	sxtr	%f8, %f8, %f8
+
 #CHECK: sy	%r0, -524288            # encoding: [0xe3,0x00,0x00,0x00,0x80,0x5b]
 #CHECK: sy	%r0, -1                 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x5b]
 #CHECK: sy	%r0, 0                  # encoding: [0xe3,0x00,0x00,0x00,0x00,0x5b]
@@ -13439,6 +14042,102 @@
 	tcxb	%f0, 4095(%r15,%r1)
 	tcxb	%f13, 0
 
+#CHECK: tdcdt	%f0, 0                  # encoding: [0xed,0x00,0x00,0x00,0x00,0x54]
+#CHECK: tdcdt	%f0, 4095               # encoding: [0xed,0x00,0x0f,0xff,0x00,0x54]
+#CHECK: tdcdt	%f0, 0(%r1)             # encoding: [0xed,0x00,0x10,0x00,0x00,0x54]
+#CHECK: tdcdt	%f0, 0(%r15)            # encoding: [0xed,0x00,0xf0,0x00,0x00,0x54]
+#CHECK: tdcdt	%f0, 4095(%r1,%r15)     # encoding: [0xed,0x01,0xff,0xff,0x00,0x54]
+#CHECK: tdcdt	%f0, 4095(%r15,%r1)     # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x54]
+#CHECK: tdcdt	%f15, 0                 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x54]
+
+	tdcdt	%f0, 0
+	tdcdt	%f0, 4095
+	tdcdt	%f0, 0(%r1)
+	tdcdt	%f0, 0(%r15)
+	tdcdt	%f0, 4095(%r1,%r15)
+	tdcdt	%f0, 4095(%r15,%r1)
+	tdcdt	%f15, 0
+
+#CHECK: tdcet	%f0, 0                  # encoding: [0xed,0x00,0x00,0x00,0x00,0x50]
+#CHECK: tdcet	%f0, 4095               # encoding: [0xed,0x00,0x0f,0xff,0x00,0x50]
+#CHECK: tdcet	%f0, 0(%r1)             # encoding: [0xed,0x00,0x10,0x00,0x00,0x50]
+#CHECK: tdcet	%f0, 0(%r15)            # encoding: [0xed,0x00,0xf0,0x00,0x00,0x50]
+#CHECK: tdcet	%f0, 4095(%r1,%r15)     # encoding: [0xed,0x01,0xff,0xff,0x00,0x50]
+#CHECK: tdcet	%f0, 4095(%r15,%r1)     # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x50]
+#CHECK: tdcet	%f15, 0                 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x50]
+
+	tdcet	%f0, 0
+	tdcet	%f0, 4095
+	tdcet	%f0, 0(%r1)
+	tdcet	%f0, 0(%r15)
+	tdcet	%f0, 4095(%r1,%r15)
+	tdcet	%f0, 4095(%r15,%r1)
+	tdcet	%f15, 0
+
+#CHECK: tdcxt	%f0, 0                  # encoding: [0xed,0x00,0x00,0x00,0x00,0x58]
+#CHECK: tdcxt	%f0, 4095               # encoding: [0xed,0x00,0x0f,0xff,0x00,0x58]
+#CHECK: tdcxt	%f0, 0(%r1)             # encoding: [0xed,0x00,0x10,0x00,0x00,0x58]
+#CHECK: tdcxt	%f0, 0(%r15)            # encoding: [0xed,0x00,0xf0,0x00,0x00,0x58]
+#CHECK: tdcxt	%f0, 4095(%r1,%r15)     # encoding: [0xed,0x01,0xff,0xff,0x00,0x58]
+#CHECK: tdcxt	%f0, 4095(%r15,%r1)     # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x58]
+#CHECK: tdcxt	%f13, 0                 # encoding: [0xed,0xd0,0x00,0x00,0x00,0x58]
+
+	tdcxt	%f0, 0
+	tdcxt	%f0, 4095
+	tdcxt	%f0, 0(%r1)
+	tdcxt	%f0, 0(%r15)
+	tdcxt	%f0, 4095(%r1,%r15)
+	tdcxt	%f0, 4095(%r15,%r1)
+	tdcxt	%f13, 0
+
+#CHECK: tdgdt	%f0, 0                  # encoding: [0xed,0x00,0x00,0x00,0x00,0x55]
+#CHECK: tdgdt	%f0, 4095               # encoding: [0xed,0x00,0x0f,0xff,0x00,0x55]
+#CHECK: tdgdt	%f0, 0(%r1)             # encoding: [0xed,0x00,0x10,0x00,0x00,0x55]
+#CHECK: tdgdt	%f0, 0(%r15)            # encoding: [0xed,0x00,0xf0,0x00,0x00,0x55]
+#CHECK: tdgdt	%f0, 4095(%r1,%r15)     # encoding: [0xed,0x01,0xff,0xff,0x00,0x55]
+#CHECK: tdgdt	%f0, 4095(%r15,%r1)     # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x55]
+#CHECK: tdgdt	%f15, 0                 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x55]
+
+	tdgdt	%f0, 0
+	tdgdt	%f0, 4095
+	tdgdt	%f0, 0(%r1)
+	tdgdt	%f0, 0(%r15)
+	tdgdt	%f0, 4095(%r1,%r15)
+	tdgdt	%f0, 4095(%r15,%r1)
+	tdgdt	%f15, 0
+
+#CHECK: tdget	%f0, 0                  # encoding: [0xed,0x00,0x00,0x00,0x00,0x51]
+#CHECK: tdget	%f0, 4095               # encoding: [0xed,0x00,0x0f,0xff,0x00,0x51]
+#CHECK: tdget	%f0, 0(%r1)             # encoding: [0xed,0x00,0x10,0x00,0x00,0x51]
+#CHECK: tdget	%f0, 0(%r15)            # encoding: [0xed,0x00,0xf0,0x00,0x00,0x51]
+#CHECK: tdget	%f0, 4095(%r1,%r15)     # encoding: [0xed,0x01,0xff,0xff,0x00,0x51]
+#CHECK: tdget	%f0, 4095(%r15,%r1)     # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x51]
+#CHECK: tdget	%f15, 0                 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x51]
+
+	tdget	%f0, 0
+	tdget	%f0, 4095
+	tdget	%f0, 0(%r1)
+	tdget	%f0, 0(%r15)
+	tdget	%f0, 4095(%r1,%r15)
+	tdget	%f0, 4095(%r15,%r1)
+	tdget	%f15, 0
+
+#CHECK: tdgxt	%f0, 0                  # encoding: [0xed,0x00,0x00,0x00,0x00,0x59]
+#CHECK: tdgxt	%f0, 4095               # encoding: [0xed,0x00,0x0f,0xff,0x00,0x59]
+#CHECK: tdgxt	%f0, 0(%r1)             # encoding: [0xed,0x00,0x10,0x00,0x00,0x59]
+#CHECK: tdgxt	%f0, 0(%r15)            # encoding: [0xed,0x00,0xf0,0x00,0x00,0x59]
+#CHECK: tdgxt	%f0, 4095(%r1,%r15)     # encoding: [0xed,0x01,0xff,0xff,0x00,0x59]
+#CHECK: tdgxt	%f0, 4095(%r15,%r1)     # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x59]
+#CHECK: tdgxt	%f13, 0                 # encoding: [0xed,0xd0,0x00,0x00,0x00,0x59]
+
+	tdgxt	%f0, 0
+	tdgxt	%f0, 4095
+	tdgxt	%f0, 0(%r1)
+	tdgxt	%f0, 0(%r15)
+	tdgxt	%f0, 4095(%r1,%r15)
+	tdgxt	%f0, 4095(%r15,%r1)
+	tdgxt	%f13, 0
+
 #CHECK: thder	%f0, %f9                # encoding: [0xb3,0x58,0x00,0x09]
 #CHECK: thder	%f0, %f15               # encoding: [0xb3,0x58,0x00,0x0f]
 #CHECK: thder	%f15, %f0               # encoding: [0xb3,0x58,0x00,0xf0]




More information about the llvm-commits mailing list