[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