From f32adf6944dba793af335a1269f8a4173cd437c3 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Tue, 30 May 2017 10:13:23 +0000 Subject: [PATCH] [SystemZ] Add hexadecimal floating-point instructions This adds assembler / disassembler support for the hexadecimal floating-point instructions. Since the Linux ABI does not use any hex float data types, these are not useful for codegen. llvm-svn: 304202 --- llvm/lib/Target/SystemZ/SystemZ.td | 1 + llvm/lib/Target/SystemZ/SystemZInstrFP.td | 19 +- llvm/lib/Target/SystemZ/SystemZInstrFormats.td | 40 +- llvm/lib/Target/SystemZ/SystemZInstrHFP.td | 240 ++++ llvm/lib/Target/SystemZ/SystemZScheduleZ13.td | 108 ++ llvm/lib/Target/SystemZ/SystemZScheduleZ196.td | 107 ++ llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td | 107 ++ llvm/test/MC/Disassembler/SystemZ/insns.txt | 1702 ++++++++++++++++++++++- llvm/test/MC/SystemZ/insn-bad.s | 438 ++++++ llvm/test/MC/SystemZ/insn-good.s | 1386 ++++++++++++++++++ 10 files changed, 4123 insertions(+), 25 deletions(-) create mode 100644 llvm/lib/Target/SystemZ/SystemZInstrHFP.td diff --git a/llvm/lib/Target/SystemZ/SystemZ.td b/llvm/lib/Target/SystemZ/SystemZ.td index 6bdfd4d..18cf5d3 100644 --- a/llvm/lib/Target/SystemZ/SystemZ.td +++ b/llvm/lib/Target/SystemZ/SystemZ.td @@ -54,6 +54,7 @@ include "SystemZInstrFormats.td" include "SystemZInstrInfo.td" include "SystemZInstrVector.td" include "SystemZInstrFP.td" +include "SystemZInstrHFP.td" def SystemZInstrInfo : InstrInfo {} diff --git a/llvm/lib/Target/SystemZ/SystemZInstrFP.td b/llvm/lib/Target/SystemZ/SystemZInstrFP.td index 364b81f..10172bd 100644 --- a/llvm/lib/Target/SystemZ/SystemZInstrFP.td +++ b/llvm/lib/Target/SystemZ/SystemZInstrFP.td @@ -121,7 +121,8 @@ let canFoldAsLoad = 1, SimpleBDXLoad = 1 in { defm LD : UnaryRXPair<"ld", 0x68, 0xED65, load, FP64, 8>; // For z13 we prefer LDE over LE to avoid partial register dependencies. - def LDE32 : UnaryRXE<"lde", 0xED24, null_frag, FP32, 4>; + let isCodeGenOnly = 1 in + def LDE32 : UnaryRXE<"lde", 0xED24, null_frag, FP32, 4>; // These instructions are split after register allocation, so we don't // want a custom inserter. @@ -437,18 +438,18 @@ def : Pat<(fmul (f128 (fpextend FP64:$src1)), bdxaddr12only:$addr)>; // Fused multiply-add. -def MAEBR : TernaryRRD<"maebr", 0xB30E, z_fma, FP32>; -def MADBR : TernaryRRD<"madbr", 0xB31E, z_fma, FP64>; +def MAEBR : TernaryRRD<"maebr", 0xB30E, z_fma, FP32, FP32>; +def MADBR : TernaryRRD<"madbr", 0xB31E, z_fma, FP64, FP64>; -def MAEB : TernaryRXF<"maeb", 0xED0E, z_fma, FP32, load, 4>; -def MADB : TernaryRXF<"madb", 0xED1E, z_fma, FP64, load, 8>; +def MAEB : TernaryRXF<"maeb", 0xED0E, z_fma, FP32, FP32, load, 4>; +def MADB : TernaryRXF<"madb", 0xED1E, z_fma, FP64, FP64, load, 8>; // Fused multiply-subtract. -def MSEBR : TernaryRRD<"msebr", 0xB30F, z_fms, FP32>; -def MSDBR : TernaryRRD<"msdbr", 0xB31F, z_fms, FP64>; +def MSEBR : TernaryRRD<"msebr", 0xB30F, z_fms, FP32, FP32>; +def MSDBR : TernaryRRD<"msdbr", 0xB31F, z_fms, FP64, FP64>; -def MSEB : TernaryRXF<"mseb", 0xED0F, z_fms, FP32, load, 4>; -def MSDB : TernaryRXF<"msdb", 0xED1F, z_fms, FP64, load, 8>; +def MSEB : TernaryRXF<"mseb", 0xED0F, z_fms, FP32, FP32, load, 4>; +def MSDB : TernaryRXF<"msdb", 0xED1F, z_fms, FP64, FP64, load, 8>; // Division. def DEBR : BinaryRRE<"debr", 0xB30D, fdiv, FP32, FP32>; diff --git a/llvm/lib/Target/SystemZ/SystemZInstrFormats.td b/llvm/lib/Target/SystemZ/SystemZInstrFormats.td index a37da28..ddef284 100644 --- a/llvm/lib/Target/SystemZ/SystemZInstrFormats.td +++ b/llvm/lib/Target/SystemZ/SystemZInstrFormats.td @@ -2752,6 +2752,15 @@ class BinaryRRE opcode, SDPatternOperator operator, let DisableEncoding = "$R1src"; } +class BinaryRRD opcode, SDPatternOperator operator, + RegisterOperand cls1, RegisterOperand cls2> + : InstRRD { + let OpKey = mnemonic#cls; + let OpType = "reg"; +} + class BinaryRRFa opcode, SDPatternOperator operator, RegisterOperand cls1, RegisterOperand cls2, RegisterOperand cls3> @@ -2987,6 +2996,18 @@ class BinaryRXE opcode, SDPatternOperator operator, let M3 = 0; } +class BinaryRXF opcode, SDPatternOperator operator, + RegisterOperand cls1, RegisterOperand cls2, + SDPatternOperator load, bits<5> bytes> + : InstRXF { + let OpKey = mnemonic#"r"#cls; + let OpType = "mem"; + let mayLoad = 1; + let AccessBytes = bytes; +} + class BinaryRXY opcode, SDPatternOperator operator, RegisterOperand cls, SDPatternOperator load, bits<5> bytes, AddressingMode mode = bdxaddr20only> @@ -3597,11 +3618,11 @@ class TernaryRRFe opcode, RegisterOperand cls1, (ins imm32zx4:$M3, cls2:$R2, imm32zx4:$M4), mnemonic#"\t$R1, $M3, $R2, $M4", []>; -class TernaryRRD opcode, - SDPatternOperator operator, RegisterOperand cls> - : InstRRD opcode, SDPatternOperator operator, + RegisterOperand cls1, RegisterOperand cls2> + : InstRRD { + [(set cls1:$R1, (operator cls2:$R1src, cls2:$R3, cls2:$R2))]> { let OpKey = mnemonic#cls; let OpType = "reg"; let Constraints = "$R1 = $R1src"; @@ -3661,12 +3682,13 @@ class SideEffectTernaryMemMemRSY opcode, } class TernaryRXF opcode, SDPatternOperator operator, - RegisterOperand cls, SDPatternOperator load, bits<5> bytes> - : InstRXF bytes> + : InstRXF { + [(set cls1:$R1, (operator cls2:$R1src, cls2:$R3, + (load bdxaddr12only:$XBD2)))]> { let OpKey = mnemonic#"r"#cls; let OpType = "mem"; let Constraints = "$R1 = $R1src"; diff --git a/llvm/lib/Target/SystemZ/SystemZInstrHFP.td b/llvm/lib/Target/SystemZ/SystemZInstrHFP.td new file mode 100644 index 0000000..6d5b4b9 --- /dev/null +++ b/llvm/lib/Target/SystemZ/SystemZInstrHFP.td @@ -0,0 +1,240 @@ +//==- SystemZInstrHFP.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 hexadecimal floating-point +// arithmetic. Since this format is not mapped to any source-language data +// type, these instructions are not used for code generation, but are provided +// for use with the assembler and disassembler only. +// +//===----------------------------------------------------------------------===// + +//===----------------------------------------------------------------------===// +// Move instructions +//===----------------------------------------------------------------------===// + +// Load and test. +let Defs = [CC] in { + def LTER : UnaryRR <"lter", 0x32, null_frag, FP32, FP32>; + def LTDR : UnaryRR <"ltdr", 0x22, null_frag, FP64, FP64>; + def LTXR : UnaryRRE<"ltxr", 0xB362, null_frag, FP128, FP128>; +} + +//===----------------------------------------------------------------------===// +// Conversion instructions +//===----------------------------------------------------------------------===// + +// Convert floating-point values to narrower representations. +def LEDR : UnaryRR <"ledr", 0x35, null_frag, FP32, FP64>; +def LEXR : UnaryRRE<"lexr", 0xB366, null_frag, FP32, FP128>; +def LDXR : UnaryRR <"ldxr", 0x25, null_frag, FP64, FP128>; +let isAsmParserOnly = 1 in { + def LRER : UnaryRR <"lrer", 0x35, null_frag, FP32, FP64>; + def LRDR : UnaryRR <"lrdr", 0x25, null_frag, FP64, FP128>; +} + +// Extend floating-point values to wider representations. +def LDER : UnaryRRE<"lder", 0xB324, null_frag, FP64, FP32>; +def LXER : UnaryRRE<"lxer", 0xB326, null_frag, FP128, FP32>; +def LXDR : UnaryRRE<"lxdr", 0xB325, null_frag, FP128, FP64>; + +def LDE : UnaryRXE<"lde", 0xED24, null_frag, FP64, 4>; +def LXE : UnaryRXE<"lxe", 0xED26, null_frag, FP128, 4>; +def LXD : UnaryRXE<"lxd", 0xED25, null_frag, FP128, 8>; + +// Convert a signed integer register value to a floating-point one. +def CEFR : UnaryRRE<"cefr", 0xB3B4, null_frag, FP32, GR32>; +def CDFR : UnaryRRE<"cdfr", 0xB3B5, null_frag, FP64, GR32>; +def CXFR : UnaryRRE<"cxfr", 0xB3B6, null_frag, FP128, GR32>; + +def CEGR : UnaryRRE<"cegr", 0xB3C4, null_frag, FP32, GR64>; +def CDGR : UnaryRRE<"cdgr", 0xB3C5, null_frag, FP64, GR64>; +def CXGR : UnaryRRE<"cxgr", 0xB3C6, null_frag, FP128, GR64>; + +// Convert a floating-point register value to a signed integer value, +// with the second operand (modifier M3) specifying the rounding mode. +let Defs = [CC] in { + def CFER : BinaryRRFe<"cfer", 0xB3B8, GR32, FP32>; + def CFDR : BinaryRRFe<"cfdr", 0xB3B9, GR32, FP64>; + def CFXR : BinaryRRFe<"cfxr", 0xB3BA, GR32, FP128>; + + def CGER : BinaryRRFe<"cger", 0xB3C8, GR64, FP32>; + def CGDR : BinaryRRFe<"cgdr", 0xB3C9, GR64, FP64>; + def CGXR : BinaryRRFe<"cgxr", 0xB3CA, GR64, FP128>; +} + +// Convert BFP to HFP. +let Defs = [CC] in { + def THDER : UnaryRRE<"thder", 0xB358, null_frag, FP64, FP32>; + def THDR : UnaryRRE<"thdr", 0xB359, null_frag, FP64, FP64>; +} + +// Convert HFP to BFP. +let Defs = [CC] in { + def TBEDR : BinaryRRFe<"tbedr", 0xB350, FP32, FP64>; + def TBDR : BinaryRRFe<"tbdr", 0xB351, FP64, FP64>; +} + + +//===----------------------------------------------------------------------===// +// Unary arithmetic +//===----------------------------------------------------------------------===// + +// Negation (Load Complement). +let Defs = [CC] in { + def LCER : UnaryRR <"lcer", 0x33, null_frag, FP32, FP32>; + def LCDR : UnaryRR <"lcdr", 0x23, null_frag, FP64, FP64>; + def LCXR : UnaryRRE<"lcxr", 0xB363, null_frag, FP128, FP128>; +} + +// Absolute value (Load Positive). +let Defs = [CC] in { + def LPER : UnaryRR <"lper", 0x30, null_frag, FP32, FP32>; + def LPDR : UnaryRR <"lpdr", 0x20, null_frag, FP64, FP64>; + def LPXR : UnaryRRE<"lpxr", 0xB360, null_frag, FP128, FP128>; +} + +// Negative absolute value (Load Negative). +let Defs = [CC] in { + def LNER : UnaryRR <"lner", 0x31, null_frag, FP32, FP32>; + def LNDR : UnaryRR <"lndr", 0x21, null_frag, FP64, FP64>; + def LNXR : UnaryRRE<"lnxr", 0xB361, null_frag, FP128, FP128>; +} + +// Halve. +def HER : UnaryRR <"her", 0x34, null_frag, FP32, FP32>; +def HDR : UnaryRR <"hdr", 0x24, null_frag, FP64, FP64>; + +// Square root. +def SQER : UnaryRRE<"sqer", 0xB245, null_frag, FP32, FP32>; +def SQDR : UnaryRRE<"sqdr", 0xB244, null_frag, FP64, FP64>; +def SQXR : UnaryRRE<"sqxr", 0xB336, null_frag, FP128, FP128>; + +def SQE : UnaryRXE<"sqe", 0xED34, null_frag, FP32, 4>; +def SQD : UnaryRXE<"sqd", 0xED35, null_frag, FP64, 8>; + +// Round to an integer (rounding towards zero). +def FIER : UnaryRRE<"fier", 0xB377, null_frag, FP32, FP32>; +def FIDR : UnaryRRE<"fidr", 0xB37F, null_frag, FP64, FP64>; +def FIXR : UnaryRRE<"fixr", 0xB367, null_frag, FP128, FP128>; + + +//===----------------------------------------------------------------------===// +// Binary arithmetic +//===----------------------------------------------------------------------===// + +// Addition. +let Defs = [CC] in { + let isCommutable = 1 in { + def AER : BinaryRR<"aer", 0x3A, null_frag, FP32, FP32>; + def ADR : BinaryRR<"adr", 0x2A, null_frag, FP64, FP64>; + def AXR : BinaryRR<"axr", 0x36, null_frag, FP128, FP128>; + } + def AE : BinaryRX<"ae", 0x7A, null_frag, FP32, load, 4>; + def AD : BinaryRX<"ad", 0x6A, null_frag, FP64, load, 8>; +} + +// Addition (unnormalized). +let Defs = [CC] in { + let isCommutable = 1 in { + def AUR : BinaryRR<"aur", 0x3E, null_frag, FP32, FP32>; + def AWR : BinaryRR<"awr", 0x2E, null_frag, FP64, FP64>; + } + def AU : BinaryRX<"au", 0x7E, null_frag, FP32, load, 4>; + def AW : BinaryRX<"aw", 0x6E, null_frag, FP64, load, 8>; +} + +// Subtraction. +let Defs = [CC] in { + def SER : BinaryRR<"ser", 0x3B, null_frag, FP32, FP32>; + def SDR : BinaryRR<"sdr", 0x2B, null_frag, FP64, FP64>; + def SXR : BinaryRR<"sxr", 0x37, null_frag, FP128, FP128>; + + def SE : BinaryRX<"se", 0x7B, null_frag, FP32, load, 4>; + def SD : BinaryRX<"sd", 0x6B, null_frag, FP64, load, 8>; +} + +// Subtraction (unnormalized). +let Defs = [CC] in { + def SUR : BinaryRR<"sur", 0x3F, null_frag, FP32, FP32>; + def SWR : BinaryRR<"swr", 0x2F, null_frag, FP64, FP64>; + + def SU : BinaryRX<"su", 0x7F, null_frag, FP32, load, 4>; + def SW : BinaryRX<"sw", 0x6F, null_frag, FP64, load, 8>; +} + +// Multiplication. +let isCommutable = 1 in { + def MEER : BinaryRRE<"meer", 0xB337, null_frag, FP32, FP32>; + def MDR : BinaryRR <"mdr", 0x2C, null_frag, FP64, FP64>; + def MXR : BinaryRR <"mxr", 0x26, null_frag, FP128, FP128>; +} +def MEE : BinaryRXE<"mee", 0xED37, null_frag, FP32, load, 4>; +def MD : BinaryRX <"md", 0x6C, null_frag, FP64, load, 8>; + +// Extending multiplication (f32 x f32 -> f64). +def MDER : BinaryRR<"mder", 0x3C, null_frag, FP64, FP32>; +def MDE : BinaryRX<"mde", 0x7C, null_frag, FP64, load, 4>; +let isAsmParserOnly = 1 in { + def MER : BinaryRR<"mer", 0x3C, null_frag, FP64, FP32>; + def ME : BinaryRX<"me", 0x7C, null_frag, FP64, load, 4>; +} + +// Extending multiplication (f64 x f64 -> f128). +def MXDR : BinaryRR<"mxdr", 0x27, null_frag, FP128, FP64>; +def MXD : BinaryRX<"mxd", 0x67, null_frag, FP128, load, 8>; + +// Fused multiply-add. +def MAER : TernaryRRD<"maer", 0xB32E, null_frag, FP32, FP32>; +def MADR : TernaryRRD<"madr", 0xB33E, null_frag, FP64, FP64>; +def MAE : TernaryRXF<"mae", 0xED2E, null_frag, FP32, FP32, load, 4>; +def MAD : TernaryRXF<"mad", 0xED3E, null_frag, FP64, FP64, load, 8>; + +// Fused multiply-subtract. +def MSER : TernaryRRD<"mser", 0xB32F, null_frag, FP32, FP32>; +def MSDR : TernaryRRD<"msdr", 0xB33F, null_frag, FP64, FP64>; +def MSE : TernaryRXF<"mse", 0xED2F, null_frag, FP32, FP32, load, 4>; +def MSD : TernaryRXF<"msd", 0xED3F, null_frag, FP64, FP64, load, 8>; + +// Multiplication (unnormalized). +def MYR : BinaryRRD<"myr", 0xB33B, null_frag, FP128, FP64>; +def MYHR : BinaryRRD<"myhr", 0xB33D, null_frag, FP64, FP64>; +def MYLR : BinaryRRD<"mylr", 0xB339, null_frag, FP64, FP64>; +def MY : BinaryRXF<"my", 0xED3B, null_frag, FP128, FP64, load, 8>; +def MYH : BinaryRXF<"myh", 0xED3D, null_frag, FP64, FP64, load, 8>; +def MYL : BinaryRXF<"myl", 0xED39, null_frag, FP64, FP64, load, 8>; + +// Fused multiply-add (unnormalized). +def MAYR : TernaryRRD<"mayr", 0xB33A, null_frag, FP128, FP64>; +def MAYHR : TernaryRRD<"mayhr", 0xB33C, null_frag, FP64, FP64>; +def MAYLR : TernaryRRD<"maylr", 0xB338, null_frag, FP64, FP64>; +def MAY : TernaryRXF<"may", 0xED3A, null_frag, FP128, FP64, load, 8>; +def MAYH : TernaryRXF<"mayh", 0xED3C, null_frag, FP64, FP64, load, 8>; +def MAYL : TernaryRXF<"mayl", 0xED38, null_frag, FP64, FP64, load, 8>; + +// Division. +def DER : BinaryRR <"der", 0x3D, null_frag, FP32, FP32>; +def DDR : BinaryRR <"ddr", 0x2D, null_frag, FP64, FP64>; +def DXR : BinaryRRE<"dxr", 0xB22D, null_frag, FP128, FP128>; +def DE : BinaryRX <"de", 0x7D, null_frag, FP32, load, 4>; +def DD : BinaryRX <"dd", 0x6D, null_frag, FP64, load, 8>; + + +//===----------------------------------------------------------------------===// +// Comparisons +//===----------------------------------------------------------------------===// + +let Defs = [CC] in { + def CER : CompareRR <"cer", 0x39, null_frag, FP32, FP32>; + def CDR : CompareRR <"cdr", 0x29, null_frag, FP64, FP64>; + def CXR : CompareRRE<"cxr", 0xB369, null_frag, FP128, FP128>; + + def CE : CompareRX<"ce", 0x79, null_frag, FP32, load, 4>; + def CD : CompareRX<"cd", 0x69, null_frag, FP64, load, 8>; +} + diff --git a/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td b/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td index 612c3b6..0a89ae3 100644 --- a/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td +++ b/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td @@ -908,6 +908,114 @@ def : InstRW<[FXa, Lat30, GroupAlone], (instregex "SFASR$")>; def : InstRW<[FXa, LSU, Lat30, GroupAlone], (instregex "LFAS$")>; def : InstRW<[FXb, Lat3, GroupAlone], (instregex "SRNM(B|T)?$")>; + +// --------------------- Hexadecimal floating point ------------------------- // + +//===----------------------------------------------------------------------===// +// HFP: Move instructions +//===----------------------------------------------------------------------===// + +// Load and Test +def : InstRW<[VecXsPm, Lat4], (instregex "LT(D|E)R$")>; +def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "LTXR$")>; + +//===----------------------------------------------------------------------===// +// HFP: Conversion instructions +//===----------------------------------------------------------------------===// + +// Load rounded +def : InstRW<[VecBF], (instregex "(LEDR|LRER)$")>; +def : InstRW<[VecBF], (instregex "LEXR$")>; +def : InstRW<[VecDF2, VecDF2], (instregex "(LDXR|LRDR)$")>; + +// Load lengthened +def : InstRW<[LSU], (instregex "LDE$")>; +def : InstRW<[FXb], (instregex "LDER$")>; +def : InstRW<[VecBF2, VecBF2, LSU, Lat12, GroupAlone], (instregex "LX(D|E)$")>; +def : InstRW<[VecBF2, VecBF2, GroupAlone], (instregex "LX(D|E)R$")>; + +// Convert from fixed +def : InstRW<[FXb, VecBF, Lat9, BeginGroup], (instregex "CE(F|G)R$")>; +def : InstRW<[FXb, VecBF, Lat9, BeginGroup], (instregex "CD(F|G)R$")>; +def : InstRW<[FXb, VecDF2, VecDF2, Lat12, GroupAlone], (instregex "CX(F|G)R$")>; + +// Convert to fixed +def : InstRW<[FXb, VecBF, Lat11, BeginGroup], (instregex "CF(E|D)R$")>; +def : InstRW<[FXb, VecBF, Lat11, BeginGroup], (instregex "CG(E|D)R$")>; +def : InstRW<[FXb, VecDF, VecDF, Lat20, BeginGroup], (instregex "C(F|G)XR$")>; + +// Convert BFP to HFP / HFP to BFP. +def : InstRW<[VecBF], (instregex "THD(E)?R$")>; +def : InstRW<[VecBF], (instregex "TB(E)?DR$")>; + +//===----------------------------------------------------------------------===// +// HFP: Unary arithmetic +//===----------------------------------------------------------------------===// + +// Load Complement / Negative / Positive +def : InstRW<[VecXsPm, Lat4], (instregex "L(C|N|P)DR$")>; +def : InstRW<[VecXsPm, Lat4], (instregex "L(C|N|P)ER$")>; +def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "L(C|N|P)XR$")>; + +// Halve +def : InstRW<[VecBF], (instregex "H(E|D)R$")>; + +// Square root +def : InstRW<[VecFPd, LSU], (instregex "SQ(E|D)$")>; +def : InstRW<[VecFPd], (instregex "SQ(E|D)R$")>; +def : InstRW<[VecFPd, VecFPd, GroupAlone], (instregex "SQXR$")>; + +// Load FP integer +def : InstRW<[VecBF], (instregex "FIER$")>; +def : InstRW<[VecBF], (instregex "FIDR$")>; +def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "FIXR$")>; + +//===----------------------------------------------------------------------===// +// HFP: Binary arithmetic +//===----------------------------------------------------------------------===// + +// Addition +def : InstRW<[VecBF, LSU, Lat12], (instregex "A(E|D|U|W)$")>; +def : InstRW<[VecBF], (instregex "A(E|D|U|W)R$")>; +def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "AXR$")>; + +// Subtraction +def : InstRW<[VecBF, LSU, Lat12], (instregex "S(E|D|U|W)$")>; +def : InstRW<[VecBF], (instregex "S(E|D|U|W)R$")>; +def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "SXR$")>; + +// Multiply +def : InstRW<[VecBF, LSU, Lat12], (instregex "M(D|DE|E|EE)$")>; +def : InstRW<[VecBF], (instregex "M(D|DE|E|EE)R$")>; +def : InstRW<[VecBF2, VecBF2, LSU, Lat12, GroupAlone], (instregex "MXD$")>; +def : InstRW<[VecBF2, VecBF2, GroupAlone], (instregex "MXDR$")>; +def : InstRW<[VecDF2, VecDF2, Lat20, GroupAlone], (instregex "MXR$")>; +def : InstRW<[VecBF2, VecBF2, LSU, Lat12, GroupAlone], (instregex "MY(H|L)?$")>; +def : InstRW<[VecBF2, VecBF2, GroupAlone], (instregex "MY(H|L)?R$")>; + +// Multiply and add / subtract +def : InstRW<[VecBF, LSU, Lat12, GroupAlone], (instregex "M(A|S)E$")>; +def : InstRW<[VecBF, GroupAlone], (instregex "M(A|S)ER$")>; +def : InstRW<[VecBF, LSU, Lat12, GroupAlone], (instregex "M(A|S)D$")>; +def : InstRW<[VecBF], (instregex "M(A|S)DR$")>; +def : InstRW<[VecBF2, VecBF2, LSU, Lat12, GroupAlone], (instregex "MAY(H|L)?$")>; +def : InstRW<[VecBF2, VecBF2, GroupAlone], (instregex "MAY(H|L)?R$")>; + +// Division +def : InstRW<[VecFPd, LSU], (instregex "D(E|D)$")>; +def : InstRW<[VecFPd], (instregex "D(E|D)R$")>; +def : InstRW<[VecFPd, VecFPd, GroupAlone], (instregex "DXR$")>; + +//===----------------------------------------------------------------------===// +// HFP: Comparisons +//===----------------------------------------------------------------------===// + +// Compare +def : InstRW<[VecXsPm, LSU, Lat8], (instregex "C(E|D)$")>; +def : InstRW<[VecXsPm, Lat4], (instregex "C(E|D)R$")>; +def : InstRW<[VecDF, VecDF, Lat20, GroupAlone], (instregex "CXR$")>; + + // --------------------------------- Vector --------------------------------- // //===----------------------------------------------------------------------===// diff --git a/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td b/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td index 670df8f..5eaa5ad 100644 --- a/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td +++ b/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td @@ -839,5 +839,112 @@ def : InstRW<[FXU, Lat30, GroupAlone], (instregex "SFASR$")>; def : InstRW<[FXU, LSU, Lat30, GroupAlone], (instregex "LFAS$")>; def : InstRW<[FXU, Lat2, GroupAlone], (instregex "SRNM(B|T)?$")>; + +// --------------------- Hexadecimal floating point ------------------------- // + +//===----------------------------------------------------------------------===// +// HFP: Move instructions +//===----------------------------------------------------------------------===// + +// Load and Test +def : InstRW<[FPU], (instregex "LT(D|E)R$")>; +def : InstRW<[FPU2, FPU2, Lat9, GroupAlone], (instregex "LTXR$")>; + +//===----------------------------------------------------------------------===// +// HFP: Conversion instructions +//===----------------------------------------------------------------------===// + +// Load rounded +def : InstRW<[FPU], (instregex "(LEDR|LRER)$")>; +def : InstRW<[FPU], (instregex "LEXR$")>; +def : InstRW<[FPU], (instregex "(LDXR|LRDR)$")>; + +// Load lengthened +def : InstRW<[LSU], (instregex "LDE$")>; +def : InstRW<[FXU], (instregex "LDER$")>; +def : InstRW<[FPU2, FPU2, LSU, Lat15, GroupAlone], (instregex "LX(D|E)$")>; +def : InstRW<[FPU2, FPU2, Lat10, GroupAlone], (instregex "LX(D|E)R$")>; + +// Convert from fixed +def : InstRW<[FXU, FPU, Lat9, GroupAlone], (instregex "CE(F|G)R$")>; +def : InstRW<[FXU, FPU, Lat9, GroupAlone], (instregex "CD(F|G)R$")>; +def : InstRW<[FXU, FPU2, FPU2, Lat11, GroupAlone], (instregex "CX(F|G)R$")>; + +// Convert to fixed +def : InstRW<[FXU, FPU, Lat12, GroupAlone], (instregex "CF(E|D)R$")>; +def : InstRW<[FXU, FPU, Lat12, GroupAlone], (instregex "CG(E|D)R$")>; +def : InstRW<[FXU, FPU, FPU, Lat20, GroupAlone], (instregex "C(F|G)XR$")>; + +// Convert BFP to HFP / HFP to BFP. +def : InstRW<[FPU], (instregex "THD(E)?R$")>; +def : InstRW<[FPU], (instregex "TB(E)?DR$")>; + +//===----------------------------------------------------------------------===// +// HFP: Unary arithmetic +//===----------------------------------------------------------------------===// + +// Load Complement / Negative / Positive +def : InstRW<[FPU], (instregex "L(C|N|P)DR$")>; +def : InstRW<[FPU], (instregex "L(C|N|P)ER$")>; +def : InstRW<[FPU2, FPU2, Lat9, GroupAlone], (instregex "L(C|N|P)XR$")>; + +// Halve +def : InstRW<[FPU], (instregex "H(E|D)R$")>; + +// Square root +def : InstRW<[FPU, LSU, Lat30], (instregex "SQ(E|D)$")>; +def : InstRW<[FPU, Lat30], (instregex "SQ(E|D)R$")>; +def : InstRW<[FPU2, FPU2, Lat30, GroupAlone], (instregex "SQXR$")>; + +// Load FP integer +def : InstRW<[FPU], (instregex "FIER$")>; +def : InstRW<[FPU], (instregex "FIDR$")>; +def : InstRW<[FPU2, FPU2, Lat15, GroupAlone], (instregex "FIXR$")>; + +//===----------------------------------------------------------------------===// +// HFP: Binary arithmetic +//===----------------------------------------------------------------------===// + +// Addition +def : InstRW<[FPU, LSU, Lat12], (instregex "A(E|D|U|W)$")>; +def : InstRW<[FPU], (instregex "A(E|D|U|W)R$")>; +def : InstRW<[FPU2, FPU2, Lat20, GroupAlone], (instregex "AXR$")>; + +// Subtraction +def : InstRW<[FPU, LSU, Lat12], (instregex "S(E|D|U|W)$")>; +def : InstRW<[FPU], (instregex "S(E|D|U|W)R$")>; +def : InstRW<[FPU2, FPU2, Lat20, GroupAlone], (instregex "SXR$")>; + +// Multiply +def : InstRW<[FPU, LSU, Lat12], (instregex "M(D|DE|E|EE)$")>; +def : InstRW<[FPU], (instregex "M(D|DE|E|EE)R$")>; +def : InstRW<[FPU2, FPU2, LSU, Lat15, GroupAlone], (instregex "MXD$")>; +def : InstRW<[FPU2, FPU2, Lat10, GroupAlone], (instregex "MXDR$")>; +def : InstRW<[FPU2, FPU2, Lat30, GroupAlone], (instregex "MXR$")>; +def : InstRW<[FPU2, FPU2, LSU, Lat15, GroupAlone], (instregex "MY(H|L)?$")>; +def : InstRW<[FPU2, FPU2, Lat10, GroupAlone], (instregex "MY(H|L)?R$")>; + +// Multiply and add / subtract +def : InstRW<[FPU, LSU, Lat12, GroupAlone], (instregex "M(A|S)E$")>; +def : InstRW<[FPU, GroupAlone], (instregex "M(A|S)ER$")>; +def : InstRW<[FPU, LSU, Lat12, GroupAlone], (instregex "M(A|S)D$")>; +def : InstRW<[FPU, GroupAlone], (instregex "M(A|S)DR$")>; +def : InstRW<[FPU2, FPU2, LSU, Lat12, GroupAlone], (instregex "MAY(H|L)?$")>; +def : InstRW<[FPU2, FPU2, GroupAlone], (instregex "MAY(H|L)?R$")>; + +// Division +def : InstRW<[FPU, LSU, Lat30], (instregex "D(E|D)$")>; +def : InstRW<[FPU, Lat30], (instregex "D(E|D)R$")>; +def : InstRW<[FPU2, FPU2, Lat30, GroupAlone], (instregex "DXR$")>; + +//===----------------------------------------------------------------------===// +// HFP: Comparisons +//===----------------------------------------------------------------------===// + +// Compare +def : InstRW<[FPU, LSU, Lat12], (instregex "C(E|D)$")>; +def : InstRW<[FPU], (instregex "C(E|D)R$")>; +def : InstRW<[FPU, FPU, Lat15], (instregex "CXR$")>; + } diff --git a/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td b/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td index 1bdb877..c016054 100644 --- a/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td +++ b/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td @@ -877,5 +877,112 @@ def : InstRW<[FXU, Lat30, GroupAlone], (instregex "SFASR$")>; def : InstRW<[FXU, LSU, Lat30, GroupAlone], (instregex "LFAS$")>; def : InstRW<[FXU, Lat2, GroupAlone], (instregex "SRNM(B|T)?$")>; + +// --------------------- Hexadecimal floating point ------------------------- // + +//===----------------------------------------------------------------------===// +// HFP: Move instructions +//===----------------------------------------------------------------------===// + +// Load and Test +def : InstRW<[FPU], (instregex "LT(D|E)R$")>; +def : InstRW<[FPU2, FPU2, Lat9, GroupAlone], (instregex "LTXR$")>; + +//===----------------------------------------------------------------------===// +// HFP: Conversion instructions +//===----------------------------------------------------------------------===// + +// Load rounded +def : InstRW<[FPU], (instregex "(LEDR|LRER)$")>; +def : InstRW<[FPU], (instregex "LEXR$")>; +def : InstRW<[FPU], (instregex "(LDXR|LRDR)$")>; + +// Load lengthened +def : InstRW<[LSU], (instregex "LDE$")>; +def : InstRW<[FXU], (instregex "LDER$")>; +def : InstRW<[FPU2, FPU2, LSU, Lat15, GroupAlone], (instregex "LX(D|E)$")>; +def : InstRW<[FPU2, FPU2, Lat10, GroupAlone], (instregex "LX(D|E)R$")>; + +// Convert from fixed +def : InstRW<[FXU, FPU, Lat9, GroupAlone], (instregex "CE(F|G)R$")>; +def : InstRW<[FXU, FPU, Lat9, GroupAlone], (instregex "CD(F|G)R$")>; +def : InstRW<[FXU, FPU2, FPU2, Lat11, GroupAlone], (instregex "CX(F|G)R$")>; + +// Convert to fixed +def : InstRW<[FXU, FPU, Lat12, GroupAlone], (instregex "CF(E|D)R$")>; +def : InstRW<[FXU, FPU, Lat12, GroupAlone], (instregex "CG(E|D)R$")>; +def : InstRW<[FXU, FPU, FPU, Lat20, GroupAlone], (instregex "C(F|G)XR$")>; + +// Convert BFP to HFP / HFP to BFP. +def : InstRW<[FPU], (instregex "THD(E)?R$")>; +def : InstRW<[FPU], (instregex "TB(E)?DR$")>; + +//===----------------------------------------------------------------------===// +// HFP: Unary arithmetic +//===----------------------------------------------------------------------===// + +// Load Complement / Negative / Positive +def : InstRW<[FPU], (instregex "L(C|N|P)DR$")>; +def : InstRW<[FPU], (instregex "L(C|N|P)ER$")>; +def : InstRW<[FPU2, FPU2, Lat9, GroupAlone], (instregex "L(C|N|P)XR$")>; + +// Halve +def : InstRW<[FPU], (instregex "H(E|D)R$")>; + +// Square root +def : InstRW<[FPU, LSU, Lat30], (instregex "SQ(E|D)$")>; +def : InstRW<[FPU, Lat30], (instregex "SQ(E|D)R$")>; +def : InstRW<[FPU2, FPU2, Lat30, GroupAlone], (instregex "SQXR$")>; + +// Load FP integer +def : InstRW<[FPU], (instregex "FIER$")>; +def : InstRW<[FPU], (instregex "FIDR$")>; +def : InstRW<[FPU2, FPU2, Lat15, GroupAlone], (instregex "FIXR$")>; + +//===----------------------------------------------------------------------===// +// HFP: Binary arithmetic +//===----------------------------------------------------------------------===// + +// Addition +def : InstRW<[FPU, LSU, Lat12], (instregex "A(E|D|U|W)$")>; +def : InstRW<[FPU], (instregex "A(E|D|U|W)R$")>; +def : InstRW<[FPU2, FPU2, Lat20, GroupAlone], (instregex "AXR$")>; + +// Subtraction +def : InstRW<[FPU, LSU, Lat12], (instregex "S(E|D|U|W)$")>; +def : InstRW<[FPU], (instregex "S(E|D|U|W)R$")>; +def : InstRW<[FPU2, FPU2, Lat20, GroupAlone], (instregex "SXR$")>; + +// Multiply +def : InstRW<[FPU, LSU, Lat12], (instregex "M(D|DE|E|EE)$")>; +def : InstRW<[FPU], (instregex "M(D|DE|E|EE)R$")>; +def : InstRW<[FPU2, FPU2, LSU, Lat15, GroupAlone], (instregex "MXD$")>; +def : InstRW<[FPU2, FPU2, Lat10, GroupAlone], (instregex "MXDR$")>; +def : InstRW<[FPU2, FPU2, Lat30, GroupAlone], (instregex "MXR$")>; +def : InstRW<[FPU2, FPU2, LSU, Lat15, GroupAlone], (instregex "MY(H|L)?$")>; +def : InstRW<[FPU2, FPU2, Lat10, GroupAlone], (instregex "MY(H|L)?R$")>; + +// Multiply and add / subtract +def : InstRW<[FPU, LSU, Lat12, GroupAlone], (instregex "M(A|S)E$")>; +def : InstRW<[FPU, GroupAlone], (instregex "M(A|S)ER$")>; +def : InstRW<[FPU, LSU, Lat12, GroupAlone], (instregex "M(A|S)D$")>; +def : InstRW<[FPU, GroupAlone], (instregex "M(A|S)DR$")>; +def : InstRW<[FPU2, FPU2, LSU, Lat12, GroupAlone], (instregex "MAY(H|L)?$")>; +def : InstRW<[FPU2, FPU2, GroupAlone], (instregex "MAY(H|L)?R$")>; + +// Division +def : InstRW<[FPU, LSU, Lat30], (instregex "D(E|D)$")>; +def : InstRW<[FPU, Lat30], (instregex "D(E|D)R$")>; +def : InstRW<[FPU2, FPU2, Lat30, GroupAlone], (instregex "DXR$")>; + +//===----------------------------------------------------------------------===// +// HFP: Comparisons +//===----------------------------------------------------------------------===// + +// Compare +def : InstRW<[FPU, LSU, Lat12], (instregex "C(E|D)$")>; +def : InstRW<[FPU], (instregex "C(E|D)R$")>; +def : InstRW<[FPU, FPU, Lat15], (instregex "CXR$")>; + } diff --git a/llvm/test/MC/Disassembler/SystemZ/insns.txt b/llvm/test/MC/Disassembler/SystemZ/insns.txt index 3a7bbd2..6917021 100644 --- a/llvm/test/MC/Disassembler/SystemZ/insns.txt +++ b/llvm/test/MC/Disassembler/SystemZ/insns.txt @@ -22,6 +22,27 @@ # CHECK: a %r15, 0 0x5a 0xf0 0x00 0x00 +# CHECK: ad %f0, 0 +0x6a 0x00 0x00 0x00 + +# CHECK: ad %f0, 4095 +0x6a 0x00 0x0f 0xff + +# CHECK: ad %f0, 0(%r1) +0x6a 0x00 0x10 0x00 + +# CHECK: ad %f0, 0(%r15) +0x6a 0x00 0xf0 0x00 + +# CHECK: ad %f0, 4095(%r1,%r15) +0x6a 0x01 0xff 0xff + +# CHECK: ad %f0, 4095(%r15,%r1) +0x6a 0x0f 0x1f 0xff + +# CHECK: ad %f15, 0 +0x6a 0xf0 0x00 0x00 + # CHECK: adb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x1a @@ -55,6 +76,39 @@ # CHECK: adbr %f15, %f0 0xb3 0x1a 0x00 0xf0 +# CHECK: adr %f0, %f0 +0x2a 0x00 + +# CHECK: adr %f0, %f15 +0x2a 0x0f + +# CHECK: adr %f7, %f8 +0x2a 0x78 + +# CHECK: adr %f15, %f0 +0x2a 0xf0 + +# CHECK: ae %f0, 0 +0x7a 0x00 0x00 0x00 + +# CHECK: ae %f0, 4095 +0x7a 0x00 0x0f 0xff + +# CHECK: ae %f0, 0(%r1) +0x7a 0x00 0x10 0x00 + +# CHECK: ae %f0, 0(%r15) +0x7a 0x00 0xf0 0x00 + +# CHECK: ae %f0, 4095(%r1,%r15) +0x7a 0x01 0xff 0xff + +# CHECK: ae %f0, 4095(%r15,%r1) +0x7a 0x0f 0x1f 0xff + +# CHECK: ae %f15, 0 +0x7a 0xf0 0x00 0x00 + # CHECK: aeb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x0a @@ -88,6 +142,18 @@ # CHECK: aebr %f15, %f0 0xb3 0x0a 0x00 0xf0 +# CHECK: aer %f0, %f0 +0x3a 0x00 + +# CHECK: aer %f0, %f15 +0x3a 0x0f + +# CHECK: aer %f7, %f8 +0x3a 0x78 + +# CHECK: aer %f15, %f0 +0x3a 0xf0 + # CHECK: afi %r0, -2147483648 0xc2 0x09 0x80 0x00 0x00 0x00 @@ -856,6 +922,72 @@ # CHECK: asi 524287(%r15), 42 0xeb 0x2a 0xff 0xff 0x7f 0x6a +# CHECK: au %f0, 0 +0x7e 0x00 0x00 0x00 + +# CHECK: au %f0, 4095 +0x7e 0x00 0x0f 0xff + +# CHECK: au %f0, 0(%r1) +0x7e 0x00 0x10 0x00 + +# CHECK: au %f0, 0(%r15) +0x7e 0x00 0xf0 0x00 + +# CHECK: au %f0, 4095(%r1,%r15) +0x7e 0x01 0xff 0xff + +# CHECK: au %f0, 4095(%r15,%r1) +0x7e 0x0f 0x1f 0xff + +# CHECK: au %f15, 0 +0x7e 0xf0 0x00 0x00 + +# CHECK: aur %f0, %f0 +0x3e 0x00 + +# CHECK: aur %f0, %f15 +0x3e 0x0f + +# CHECK: aur %f7, %f8 +0x3e 0x78 + +# CHECK: aur %f15, %f0 +0x3e 0xf0 + +# CHECK: aw %f0, 0 +0x6e 0x00 0x00 0x00 + +# CHECK: aw %f0, 4095 +0x6e 0x00 0x0f 0xff + +# CHECK: aw %f0, 0(%r1) +0x6e 0x00 0x10 0x00 + +# CHECK: aw %f0, 0(%r15) +0x6e 0x00 0xf0 0x00 + +# CHECK: aw %f0, 4095(%r1,%r15) +0x6e 0x01 0xff 0xff + +# CHECK: aw %f0, 4095(%r15,%r1) +0x6e 0x0f 0x1f 0xff + +# CHECK: aw %f15, 0 +0x6e 0xf0 0x00 0x00 + +# CHECK: awr %f0, %f0 +0x2e 0x00 + +# CHECK: awr %f0, %f15 +0x2e 0x0f + +# CHECK: awr %f7, %f8 +0x2e 0x78 + +# CHECK: awr %f15, %f0 +0x2e 0xf0 + # CHECK: axbr %f0, %f0 0xb3 0x4a 0x00 0x00 @@ -868,6 +1000,18 @@ # CHECK: axbr %f13, %f0 0xb3 0x4a 0x00 0xd0 +# CHECK: axr %f0, %f0 +0x36 0x00 + +# CHECK: axr %f0, %f13 +0x36 0x0d + +# CHECK: axr %f8, %f8 +0x36 0x88 + +# CHECK: axr %f13, %f0 +0x36 0xd0 + # CHECK: ay %r0, -524288 0xe3 0x00 0x00 0x00 0x80 0x5a @@ -1348,6 +1492,27 @@ # CHECK: c %r15, 0 0x59 0xf0 0x00 0x00 +# CHECK: cd %f0, 0 +0x69 0x00 0x00 0x00 + +# CHECK: cd %f0, 4095 +0x69 0x00 0x0f 0xff + +# CHECK: cd %f0, 0(%r1) +0x69 0x00 0x10 0x00 + +# CHECK: cd %f0, 0(%r15) +0x69 0x00 0xf0 0x00 + +# CHECK: cd %f0, 4095(%r1,%r15) +0x69 0x01 0xff 0xff + +# CHECK: cd %f0, 4095(%r15,%r1) +0x69 0x0f 0x1f 0xff + +# CHECK: cd %f15, 0 +0x69 0xf0 0x00 0x00 + # CHECK: cdb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x19 @@ -1414,6 +1579,21 @@ # CHECK: cdfbra %f15, 0, %r0, 1 0xb3 0x95 0x01 0xf0 +# CHECK: cdfr %f0, %r0 +0xb3 0xb5 0x00 0x00 + +# CHECK: cdfr %f0, %r15 +0xb3 0xb5 0x00 0x0f + +# CHECK: cdfr %f15, %r0 +0xb3 0xb5 0x00 0xf0 + +# CHECK: cdfr %f7, %r8 +0xb3 0xb5 0x00 0x78 + +# CHECK: cdfr %f15, %r15 +0xb3 0xb5 0x00 0xff + # CHECK: cdgbr %f0, %r0 0xb3 0xa5 0x00 0x00 @@ -1447,6 +1627,21 @@ # CHECK: cdgbra %f15, 0, %r0, 1 0xb3 0xa5 0x01 0xf0 +# CHECK: cdgr %f0, %r0 +0xb3 0xc5 0x00 0x00 + +# CHECK: cdgr %f0, %r15 +0xb3 0xc5 0x00 0x0f + +# CHECK: cdgr %f15, %r0 +0xb3 0xc5 0x00 0xf0 + +# CHECK: cdgr %f7, %r8 +0xb3 0xc5 0x00 0x78 + +# CHECK: cdgr %f15, %r15 +0xb3 0xc5 0x00 0xff + # CHECK: cdlfbr %f0, 0, %r0, 1 0xb3 0x91 0x01 0x00 @@ -1483,6 +1678,18 @@ # CHECK: cdlgbr %f15, 0, %r0, 1 0xb3 0xa1 0x01 0xf0 +# CHECK: cdr %f0, %f0 +0x29 0x00 + +# CHECK: cdr %f0, %f15 +0x29 0x0f + +# CHECK: cdr %f7, %f8 +0x29 0x78 + +# CHECK: cdr %f15, %f0 +0x29 0xf0 + # CHECK: cds %r0, %r0, 0 0xbb 0x00 0x00 0x00 @@ -1573,6 +1780,27 @@ # CHECK: cdsy %r14, %r0, 0 0xeb 0xe0 0x00 0x00 0x00 0x31 +# CHECK: ce %f0, 0 +0x79 0x00 0x00 0x00 + +# CHECK: ce %f0, 4095 +0x79 0x00 0x0f 0xff + +# CHECK: ce %f0, 0(%r1) +0x79 0x00 0x10 0x00 + +# CHECK: ce %f0, 0(%r15) +0x79 0x00 0xf0 0x00 + +# CHECK: ce %f0, 4095(%r1,%r15) +0x79 0x01 0xff 0xff + +# CHECK: ce %f0, 4095(%r15,%r1) +0x79 0x0f 0x1f 0xff + +# CHECK: ce %f15, 0 +0x79 0xf0 0x00 0x00 + # CHECK: ceb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x09 @@ -1639,6 +1867,21 @@ # CHECK: cefbra %f15, 0, %r0, 1 0xb3 0x94 0x01 0xf0 +# CHECK: cefr %f0, %r0 +0xb3 0xb4 0x00 0x00 + +# CHECK: cefr %f0, %r15 +0xb3 0xb4 0x00 0x0f + +# CHECK: cefr %f15, %r0 +0xb3 0xb4 0x00 0xf0 + +# CHECK: cefr %f7, %r8 +0xb3 0xb4 0x00 0x78 + +# CHECK: cefr %f15, %r15 +0xb3 0xb4 0x00 0xff + # CHECK: cegbr %f0, %r0 0xb3 0xa4 0x00 0x00 @@ -1672,6 +1915,21 @@ # CHECK: cegbra %f15, 0, %r0, 1 0xb3 0xa4 0x01 0xf0 +# CHECK: cegr %f0, %r0 +0xb3 0xc4 0x00 0x00 + +# CHECK: cegr %f0, %r15 +0xb3 0xc4 0x00 0x0f + +# CHECK: cegr %f15, %r0 +0xb3 0xc4 0x00 0xf0 + +# CHECK: cegr %f7, %r8 +0xb3 0xc4 0x00 0x78 + +# CHECK: cegr %f15, %r15 +0xb3 0xc4 0x00 0xff + # CHECK: celfbr %f0, 0, %r0, 1 0xb3 0x90 0x01 0x00 @@ -1708,6 +1966,18 @@ # CHECK: celgbr %f15, 0, %r0, 1 0xb3 0xa0 0x01 0xf0 +# CHECK: cer %f0, %f0 +0x39 0x00 + +# CHECK: cer %f0, %f15 +0x39 0x0f + +# CHECK: cer %f7, %f8 +0x39 0x78 + +# CHECK: cer %f15, %f0 +0x39 0xf0 + # CHECK: cfc 0 0xb2 0x1a 0x00 0x00 @@ -1759,6 +2029,21 @@ # CHECK: cfdbra %r15, 0, %f0, 1 0xb3 0x99 0x01 0xf0 +# CHECK: cfdr %r0, 0, %f0 +0xb3 0xb9 0x00 0x00 + +# CHECK: cfdr %r0, 0, %f15 +0xb3 0xb9 0x00 0x0f + +# CHECK: cfdr %r0, 15, %f0 +0xb3 0xb9 0xf0 0x00 + +# CHECK: cfdr %r4, 5, %f6 +0xb3 0xb9 0x50 0x46 + +# CHECK: cfdr %r15, 0, %f0 +0xb3 0xb9 0x00 0xf0 + # CHECK: cfebr %r0, 0, %f0 0xb3 0x98 0x00 0x00 @@ -1792,6 +2077,21 @@ # CHECK: cfebra %r15, 0, %f0, 1 0xb3 0x98 0x01 0xf0 +# CHECK: cfer %r0, 0, %f0 +0xb3 0xb8 0x00 0x00 + +# CHECK: cfer %r0, 0, %f15 +0xb3 0xb8 0x00 0x0f + +# CHECK: cfer %r0, 15, %f0 +0xb3 0xb8 0xf0 0x00 + +# CHECK: cfer %r4, 5, %f6 +0xb3 0xb8 0x50 0x46 + +# CHECK: cfer %r15, 0, %f0 +0xb3 0xb8 0x00 0xf0 + # CHECK: cfi %r0, -2147483648 0xc2 0x0d 0x80 0x00 0x00 0x00 @@ -1843,6 +2143,21 @@ # CHECK: cfxbra %r15, 0, %f0, 1 0xb3 0x9a 0x01 0xf0 +# CHECK: cfxr %r0, 0, %f0 +0xb3 0xba 0x00 0x00 + +# CHECK: cfxr %r0, 0, %f13 +0xb3 0xba 0x00 0x0d + +# CHECK: cfxr %r0, 15, %f0 +0xb3 0xba 0xf0 0x00 + +# CHECK: cfxr %r4, 5, %f8 +0xb3 0xba 0x50 0x48 + +# CHECK: cfxr %r15, 0, %f0 +0xb3 0xba 0x00 0xf0 + # CHECK: cg %r0, -524288 0xe3 0x00 0x00 0x00 0x80 0x20 @@ -1906,6 +2221,21 @@ # CHECK: cgdbra %r15, 0, %f0, 1 0xb3 0xa9 0x01 0xf0 +# CHECK: cgdr %r0, 0, %f0 +0xb3 0xc9 0x00 0x00 + +# CHECK: cgdr %r0, 0, %f15 +0xb3 0xc9 0x00 0x0f + +# CHECK: cgdr %r0, 15, %f0 +0xb3 0xc9 0xf0 0x00 + +# CHECK: cgdr %r4, 5, %f6 +0xb3 0xc9 0x50 0x46 + +# CHECK: cgdr %r15, 0, %f0 +0xb3 0xc9 0x00 0xf0 + # CHECK: cgebr %r0, 0, %f0 0xb3 0xa8 0x00 0x00 @@ -1939,6 +2269,21 @@ # CHECK: cgebra %r15, 0, %f0, 1 0xb3 0xa8 0x01 0xf0 +# CHECK: cger %r0, 0, %f0 +0xb3 0xc8 0x00 0x00 + +# CHECK: cger %r0, 0, %f15 +0xb3 0xc8 0x00 0x0f + +# CHECK: cger %r0, 15, %f0 +0xb3 0xc8 0xf0 0x00 + +# CHECK: cger %r4, 5, %f6 +0xb3 0xc8 0x50 0x46 + +# CHECK: cger %r15, 0, %f0 +0xb3 0xc8 0x00 0xf0 + # CHECK: cgf %r0, -524288 0xe3 0x00 0x00 0x00 0x80 0x30 @@ -2299,6 +2644,21 @@ # CHECK: cgxbra %r15, 0, %f0, 1 0xb3 0xaa 0x01 0xf0 +# CHECK: cgxr %r0, 0, %f0 +0xb3 0xca 0x00 0x00 + +# CHECK: cgxr %r0, 0, %f13 +0xb3 0xca 0x00 0x0d + +# CHECK: cgxr %r0, 15, %f0 +0xb3 0xca 0xf0 0x00 + +# CHECK: cgxr %r4, 5, %f8 +0xb3 0xca 0x50 0x48 + +# CHECK: cgxr %r15, 0, %f0 +0xb3 0xca 0x00 0xf0 + # CHECK: ch %r0, 0 0x49 0x00 0x00 0x00 @@ -4246,6 +4606,21 @@ # CHECK: cxfbra %f13, 0, %r0, 1 0xb3 0x96 0x01 0xd0 +# CHECK: cxfr %f0, %r0 +0xb3 0xb6 0x00 0x00 + +# CHECK: cxfr %f0, %r15 +0xb3 0xb6 0x00 0x0f + +# CHECK: cxfr %f13, %r0 +0xb3 0xb6 0x00 0xd0 + +# CHECK: cxfr %f8, %r7 +0xb3 0xb6 0x00 0x87 + +# CHECK: cxfr %f13, %r15 +0xb3 0xb6 0x00 0xdf + # CHECK: cxgbr %f0, %r0 0xb3 0xa6 0x00 0x00 @@ -4279,6 +4654,21 @@ # CHECK: cxgbra %f13, 0, %r0, 1 0xb3 0xa6 0x01 0xd0 +# CHECK: cxgr %f0, %r0 +0xb3 0xc6 0x00 0x00 + +# CHECK: cxgr %f0, %r15 +0xb3 0xc6 0x00 0x0f + +# CHECK: cxgr %f13, %r0 +0xb3 0xc6 0x00 0xd0 + +# CHECK: cxgr %f8, %r7 +0xb3 0xc6 0x00 0x87 + +# CHECK: cxgr %f13, %r15 +0xb3 0xc6 0x00 0xdf + # CHECK: cxlfbr %f0, 0, %r0, 1 0xb3 0x92 0x01 0x00 @@ -4315,6 +4705,18 @@ # CHECK: cxlgbr %f13, 0, %r0, 1 0xb3 0xa2 0x01 0xd0 +# CHECK: cxr %f0, %f0 +0xb3 0x69 0x00 0x00 + +# CHECK: cxr %f0, %f13 +0xb3 0x69 0x00 0x0d + +# CHECK: cxr %f8, %f8 +0xb3 0x69 0x00 0x88 + +# CHECK: cxr %f13, %f0 +0xb3 0x69 0x00 0xd0 + # CHECK: cy %r0, -524288 0xe3 0x00 0x00 0x00 0x80 0x59 @@ -4366,6 +4768,27 @@ # CHECK: d %r14, 0 0x5d 0xe0 0x00 0x00 +# CHECK: dd %f0, 0 +0x6d 0x00 0x00 0x00 + +# CHECK: dd %f0, 4095 +0x6d 0x00 0x0f 0xff + +# CHECK: dd %f0, 0(%r1) +0x6d 0x00 0x10 0x00 + +# CHECK: dd %f0, 0(%r15) +0x6d 0x00 0xf0 0x00 + +# CHECK: dd %f0, 4095(%r1,%r15) +0x6d 0x01 0xff 0xff + +# CHECK: dd %f0, 4095(%r15,%r1) +0x6d 0x0f 0x1f 0xff + +# CHECK: dd %f15, 0 +0x6d 0xf0 0x00 0x00 + # CHECK: ddb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x1d @@ -4399,6 +4822,39 @@ # CHECK: ddbr %f15, %f0 0xb3 0x1d 0x00 0xf0 +# CHECK: ddr %f0, %f0 +0x2d 0x00 + +# CHECK: ddr %f0, %f15 +0x2d 0x0f + +# CHECK: ddr %f7, %f8 +0x2d 0x78 + +# CHECK: ddr %f15, %f0 +0x2d 0xf0 + +# CHECK: de %f0, 0 +0x7d 0x00 0x00 0x00 + +# CHECK: de %f0, 4095 +0x7d 0x00 0x0f 0xff + +# CHECK: de %f0, 0(%r1) +0x7d 0x00 0x10 0x00 + +# CHECK: de %f0, 0(%r15) +0x7d 0x00 0xf0 0x00 + +# CHECK: de %f0, 4095(%r1,%r15) +0x7d 0x01 0xff 0xff + +# CHECK: de %f0, 4095(%r15,%r1) +0x7d 0x0f 0x1f 0xff + +# CHECK: de %f15, 0 +0x7d 0xf0 0x00 0x00 + # CHECK: deb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x0d @@ -4432,6 +4888,18 @@ # CHECK: debr %f15, %f0 0xb3 0x0d 0x00 0xf0 +# CHECK: der %f0, %f0 +0x3d 0x00 + +# CHECK: der %f0, %f15 +0x3d 0x0f + +# CHECK: der %f7, %f8 +0x3d 0x78 + +# CHECK: der %f15, %f0 +0x3d 0xf0 + # CHECK: didbr %f0, %f0, %f0, 1 0xb3 0x5b 0x01 0x00 @@ -4702,6 +5170,18 @@ # CHECK: dxbr %f13, %f0 0xb3 0x4d 0x00 0xd0 +# CHECK: dxr %f0, %f0 +0xb2 0x2d 0x00 0x00 + +# CHECK: dxr %f0, %f13 +0xb2 0x2d 0x00 0x0d + +# CHECK: dxr %f8, %f8 +0xb2 0x2d 0x00 0x88 + +# CHECK: dxr %f13, %f0 +0xb2 0x2d 0x00 0xd0 + # CHECK: ear %r0, %a0 0xb2 0x4f 0x00 0x00 @@ -4933,6 +5413,18 @@ # CHECK: fidbra %f15, 0, %f0, 1 0xb3 0x5f 0x01 0xf0 +# CHECK: fidr %f0, %f0 +0xb3 0x7f 0x00 0x00 + +# CHECK: fidr %f0, %f15 +0xb3 0x7f 0x00 0x0f + +# CHECK: fidr %f4, %f6 +0xb3 0x7f 0x00 0x46 + +# CHECK: fidr %f15, %f0 +0xb3 0x7f 0x00 0xf0 + # CHECK: fiebr %f0, 0, %f0 0xb3 0x57 0x00 0x00 @@ -4966,6 +5458,18 @@ # CHECK: fiebra %f15, 0, %f0, 1 0xb3 0x57 0x01 0xf0 +# CHECK: fier %f0, %f0 +0xb3 0x77 0x00 0x00 + +# CHECK: fier %f0, %f15 +0xb3 0x77 0x00 0x0f + +# CHECK: fier %f4, %f6 +0xb3 0x77 0x00 0x46 + +# CHECK: fier %f15, %f0 +0xb3 0x77 0x00 0xf0 + # CHECK: fixbr %f0, 0, %f0 0xb3 0x47 0x00 0x00 @@ -4999,6 +5503,18 @@ # CHECK: fixbra %f13, 0, %f0, 1 0xb3 0x47 0x01 0xd0 +# CHECK: fixr %f0, %f0 +0xb3 0x67 0x00 0x00 + +# CHECK: fixr %f0, %f13 +0xb3 0x67 0x00 0x0d + +# CHECK: fixr %f4, %f8 +0xb3 0x67 0x00 0x48 + +# CHECK: fixr %f13, %f0 +0xb3 0x67 0x00 0xd0 + # CHECK: flogr %r0, %r0 0xb9 0x83 0x00 0x00 @@ -5011,6 +5527,30 @@ # CHECK: flogr %r14, %r0 0xb9 0x83 0x00 0xe0 +# CHECK: hdr %f0, %f0 +0x24 0x00 + +# CHECK: hdr %f0, %f15 +0x24 0x0f + +# CHECK: hdr %f7, %f8 +0x24 0x78 + +# CHECK: hdr %f15, %f0 +0x24 0xf0 + +# CHECK: her %f0, %f0 +0x34 0x00 + +# CHECK: her %f0, %f15 +0x34 0x0f + +# CHECK: her %f7, %f8 +0x34 0x78 + +# CHECK: her %f15, %f0 +0x34 0xf0 + # CHECK: ic %r0, 0 0x43 0x00 0x00 0x00 @@ -6025,6 +6565,18 @@ # CHECK: lcdbr %f15, %f9 0xb3 0x13 0x00 0xf9 +# CHECK: lcdr %f0, %f9 +0x23 0x09 + +# CHECK: lcdr %f0, %f15 +0x23 0x0f + +# CHECK: lcdr %f15, %f0 +0x23 0xf0 + +# CHECK: lcdr %f15, %f9 +0x23 0xf9 + # CHECK: lcebr %f0, %f9 0xb3 0x03 0x00 0x09 @@ -6037,9 +6589,20 @@ # CHECK: lcebr %f15, %f9 0xb3 0x03 0x00 0xf9 +# CHECK: lcer %f0, %f9 +0x33 0x09 + +# CHECK: lcer %f0, %f15 +0x33 0x0f + +# CHECK: lcer %f15, %f0 +0x33 0xf0 + +# CHECK: lcer %f15, %f9 +0x33 0xf9 + # CHECK: lcgfr %r0, %r0 0xb9 0x13 0x00 0x00 - # CHECK: lcgfr %r0, %r15 0xb9 0x13 0x00 0x0f @@ -6085,6 +6648,18 @@ # CHECK: lcxbr %f13, %f9 0xb3 0x43 0x00 0xd9 +# CHECK: lcxr %f0, %f8 +0xb3 0x63 0x00 0x08 + +# CHECK: lcxr %f0, %f13 +0xb3 0x63 0x00 0x0d + +# CHECK: lcxr %f13, %f0 +0xb3 0x63 0x00 0xd0 + +# CHECK: lcxr %f13, %f9 +0xb3 0x63 0x00 0xd9 + # CHECK: ld %f0, 0 0x68 0x00 0x00 0x00 @@ -6106,6 +6681,27 @@ # CHECK: ld %f15, 0 0x68 0xf0 0x00 0x00 +# CHECK: lde %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x24 + +# CHECK: lde %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x24 + +# CHECK: lde %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x24 + +# CHECK: lde %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x24 + +# CHECK: lde %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x24 + +# CHECK: lde %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x24 + +# CHECK: lde %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x24 + # CHECK: ldeb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x04 @@ -6136,6 +6732,15 @@ # CHECK: ldebr %f15, %f0 0xb3 0x04 0x00 0xf0 +# CHECK: lder %f0, %f15 +0xb3 0x24 0x00 0x0f + +# CHECK: lder %f7, %f8 +0xb3 0x24 0x00 0x78 + +# CHECK: lder %f15, %f0 +0xb3 0x24 0x00 0xf0 + # CHECK: ldgr %f0, %r0 0xb3 0xc1 0x00 0x00 @@ -6196,6 +6801,21 @@ # CHECK: ldxbra %f13, 0, %f0, 1 0xb3 0x45 0x01 0xd0 +# CHECK: ldxr %f0, %f0 +0x25 0x00 + +# CHECK: ldxr %f0, %f13 +0x25 0x0d + +# CHECK: ldxr %f7, %f8 +0x25 0x78 + +# CHECK: ldxr %f15, %f0 +0x25 0xf0 + +# CHECK: ldxr %f15, %f13 +0x25 0xfd + # CHECK: ldy %f0, -524288 0xed 0x00 0x00 0x00 0x80 0x65 @@ -6280,6 +6900,21 @@ # CHECK: ledbra %f15, 0, %f0, 1 0xb3 0x44 0x01 0xf0 +# CHECK: ledr %f0, %f0 +0x35 0x00 + +# CHECK: ledr %f0, %f15 +0x35 0x0f + +# CHECK: ledr %f7, %f8 +0x35 0x78 + +# CHECK: ledr %f15, %f0 +0x35 0xf0 + +# CHECK: ledr %f15, %f15 +0x35 0xff + # CHECK: ler %f0, %f9 0x38 0x09 @@ -6325,6 +6960,21 @@ # CHECK: lexbra %f13, 0, %f0, 1 0xb3 0x46 0x01 0xd0 +# CHECK: lexr %f0, %f0 +0xb3 0x66 0x00 0x00 + +# CHECK: lexr %f0, %f13 +0xb3 0x66 0x00 0x0d + +# CHECK: lexr %f7, %f8 +0xb3 0x66 0x00 0x78 + +# CHECK: lexr %f15, %f0 +0xb3 0x66 0x00 0xf0 + +# CHECK: lexr %f15, %f13 +0xb3 0x66 0x00 0xfd + # CHECK: ley %f0, -524288 0xed 0x00 0x00 0x00 0x80 0x64 @@ -7399,6 +8049,18 @@ # CHECK: lndbr %f15, %f9 0xb3 0x11 0x00 0xf9 +# CHECK: lndr %f0, %f9 +0x21 0x09 + +# CHECK: lndr %f0, %f15 +0x21 0x0f + +# CHECK: lndr %f15, %f0 +0x21 0xf0 + +# CHECK: lndr %f15, %f9 +0x21 0xf9 + # CHECK: lnebr %f0, %f9 0xb3 0x01 0x00 0x09 @@ -7411,6 +8073,18 @@ # CHECK: lnebr %f15, %f9 0xb3 0x01 0x00 0xf9 +# CHECK: lner %f0, %f9 +0x31 0x09 + +# CHECK: lner %f0, %f15 +0x31 0x0f + +# CHECK: lner %f15, %f0 +0x31 0xf0 + +# CHECK: lner %f15, %f9 +0x31 0xf9 + # CHECK: lngfr %r0, %r0 0xb9 0x11 0x00 0x00 @@ -7459,6 +8133,18 @@ # CHECK: lnxbr %f13, %f9 0xb3 0x41 0x00 0xd9 +# CHECK: lnxr %f0, %f8 +0xb3 0x61 0x00 0x08 + +# CHECK: lnxr %f0, %f13 +0xb3 0x61 0x00 0x0d + +# CHECK: lnxr %f13, %f0 +0xb3 0x61 0x00 0xd0 + +# CHECK: lnxr %f13, %f9 +0xb3 0x61 0x00 0xd9 + # CHECK: loc %r7, 6399(%r8), 0 0xeb 0x70 0x88 0xff 0x01 0xf2 @@ -7705,6 +8391,18 @@ # CHECK: lpdg %r2, 4095(%r1), 0(%r15) 0xc8 0x25 0x1f 0xff 0xf0 0x00 +# CHECK: lpdr %f0, %f9 +0x20 0x09 + +# CHECK: lpdr %f0, %f15 +0x20 0x0f + +# CHECK: lpdr %f15, %f0 +0x20 0xf0 + +# CHECK: lpdr %f15, %f9 +0x20 0xf9 + # CHECK: lpebr %f0, %f9 0xb3 0x00 0x00 0x09 @@ -7717,6 +8415,18 @@ # CHECK: lpebr %f15, %f9 0xb3 0x00 0x00 0xf9 +# CHECK: lper %f0, %f9 +0x30 0x09 + +# CHECK: lper %f0, %f15 +0x30 0x0f + +# CHECK: lper %f15, %f0 +0x30 0xf0 + +# CHECK: lper %f15, %f9 +0x30 0xf9 + # CHECK: lpgfr %r0, %r0 0xb9 0x10 0x00 0x00 @@ -7795,6 +8505,18 @@ # CHECK: lpxbr %f13, %f9 0xb3 0x40 0x00 0xd9 +# CHECK: lpxr %f0, %f8 +0xb3 0x60 0x00 0x08 + +# CHECK: lpxr %f0, %f13 +0xb3 0x60 0x00 0x0d + +# CHECK: lpxr %f13, %f0 +0xb3 0x60 0x00 0xd0 + +# CHECK: lpxr %f13, %f9 +0xb3 0x60 0x00 0xd9 + # CHECK: lr %r0, %r9 0x18 0x09 @@ -7969,6 +8691,18 @@ # CHECK: ltdbr %f15, %f9 0xb3 0x12 0x00 0xf9 +# CHECK: ltdr %f0, %f9 +0x22 0x09 + +# CHECK: ltdr %f0, %f15 +0x22 0x0f + +# CHECK: ltdr %f15, %f0 +0x22 0xf0 + +# CHECK: ltdr %f15, %f9 +0x22 0xf9 + # CHECK: ltebr %f0, %f9 0xb3 0x02 0x00 0x09 @@ -7981,6 +8715,18 @@ # CHECK: ltebr %f15, %f9 0xb3 0x02 0x00 0xf9 +# CHECK: lter %f0, %f9 +0x32 0x09 + +# CHECK: lter %f0, %f15 +0x32 0x0f + +# CHECK: lter %f15, %f0 +0x32 0xf0 + +# CHECK: lter %f15, %f9 +0x32 0xf9 + # CHECK: ltg %r0, -524288 0xe3 0x00 0x00 0x00 0x80 0x02 @@ -8089,14 +8835,44 @@ # CHECK: ltxbr %f13, %f9 0xb3 0x42 0x00 0xd9 -# CHECK: lxdb %f0, 0 -0xed 0x00 0x00 0x00 0x00 0x05 +# CHECK: ltxr %f0, %f9 +0xb3 0x62 0x00 0x09 -# CHECK: lxdb %f0, 4095 -0xed 0x00 0x0f 0xff 0x00 0x05 +# CHECK: ltxr %f0, %f13 +0xb3 0x62 0x00 0x0d -# CHECK: lxdb %f0, 0(%r1) -0xed 0x00 0x10 0x00 0x00 0x05 +# CHECK: ltxr %f13, %f0 +0xb3 0x62 0x00 0xd0 + +# CHECK: ltxr %f13, %f9 +0xb3 0x62 0x00 0xd9 + +# CHECK: lxd %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x25 + +# CHECK: lxd %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x25 + +# CHECK: lxd %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x25 + +# CHECK: lxd %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x25 + +# CHECK: lxd %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x25 + +# CHECK: lxd %f13, 0 +0xed 0xd0 0x00 0x00 0x00 0x25 + +# CHECK: lxdb %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x05 + +# CHECK: lxdb %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x05 + +# CHECK: lxdb %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x05 # CHECK: lxdb %f0, 0(%r15) 0xed 0x00 0xf0 0x00 0x00 0x05 @@ -8122,6 +8898,36 @@ # CHECK: lxdbr %f13, %f15 0xb3 0x05 0x00 0xdf +# CHECK: lxdr %f0, %f8 +0xb3 0x25 0x00 0x08 + +# CHECK: lxdr %f0, %f13 +0xb3 0x25 0x00 0x0d + +# CHECK: lxdr %f13, %f0 +0xb3 0x25 0x00 0xd0 + +# CHECK: lxdr %f13, %f15 +0xb3 0x25 0x00 0xdf + +# CHECK: lxe %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x26 + +# CHECK: lxe %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x26 + +# CHECK: lxe %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x26 + +# CHECK: lxe %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x26 + +# CHECK: lxe %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x26 + +# CHECK: lxe %f13, 0 +0xed 0xd0 0x00 0x00 0x00 0x26 + # CHECK: lxeb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x06 @@ -8155,6 +8961,18 @@ # CHECK: lxebr %f13, %f15 0xb3 0x06 0x00 0xdf +# CHECK: lxer %f0, %f8 +0xb3 0x26 0x00 0x08 + +# CHECK: lxer %f0, %f13 +0xb3 0x26 0x00 0x0d + +# CHECK: lxer %f13, %f0 +0xb3 0x26 0x00 0xd0 + +# CHECK: lxer %f13, %f15 +0xb3 0x26 0x00 0xdf + # CHECK: lxr %f0, %f8 0xb3 0x65 0x00 0x08 @@ -8245,6 +9063,33 @@ # CHECK: m %r14, 0 0x5c 0xe0 0x00 0x00 +# CHECK: mad %f0, %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x3e + +# CHECK: mad %f0, %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x3e + +# CHECK: mad %f0, %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x3e + +# CHECK: mad %f0, %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x3e + +# CHECK: mad %f0, %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x3e + +# CHECK: mad %f0, %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x3e + +# CHECK: mad %f0, %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x3e + +# CHECK: mad %f15, %f0, 0 +0xed 0x00 0x00 0x00 0xf0 0x3e + +# CHECK: mad %f15, %f15, 0 +0xed 0xf0 0x00 0x00 0xf0 0x3e + # CHECK: madb %f0, %f0, 0 0xed 0x00 0x00 0x00 0x00 0x1e @@ -8290,6 +9135,51 @@ # CHECK: madbr %f15, %f15, %f15 0xb3 0x1e 0xf0 0xff +# CHECK: madr %f0, %f0, %f0 +0xb3 0x3e 0x00 0x00 + +# CHECK: madr %f0, %f0, %f15 +0xb3 0x3e 0x00 0x0f + +# CHECK: madr %f0, %f15, %f0 +0xb3 0x3e 0x00 0xf0 + +# CHECK: madr %f15, %f0, %f0 +0xb3 0x3e 0xf0 0x00 + +# CHECK: madr %f7, %f8, %f9 +0xb3 0x3e 0x70 0x89 + +# CHECK: madr %f15, %f15, %f15 +0xb3 0x3e 0xf0 0xff + +# CHECK: mae %f0, %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x2e + +# CHECK: mae %f0, %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x2e + +# CHECK: mae %f0, %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x2e + +# CHECK: mae %f0, %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x2e + +# CHECK: mae %f0, %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x2e + +# CHECK: mae %f0, %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x2e + +# CHECK: mae %f0, %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x2e + +# CHECK: mae %f15, %f0, 0 +0xed 0x00 0x00 0x00 0xf0 0x2e + +# CHECK: mae %f15, %f15, 0 +0xed 0xf0 0x00 0x00 0xf0 0x2e + # CHECK: maeb %f0, %f0, 0 0xed 0x00 0x00 0x00 0x00 0x0e @@ -8335,6 +9225,159 @@ # CHECK: maebr %f15, %f15, %f15 0xb3 0x0e 0xf0 0xff +# CHECK: maer %f0, %f0, %f0 +0xb3 0x2e 0x00 0x00 + +# CHECK: maer %f0, %f0, %f15 +0xb3 0x2e 0x00 0x0f + +# CHECK: maer %f0, %f15, %f0 +0xb3 0x2e 0x00 0xf0 + +# CHECK: maer %f15, %f0, %f0 +0xb3 0x2e 0xf0 0x00 + +# CHECK: maer %f7, %f8, %f9 +0xb3 0x2e 0x70 0x89 + +# CHECK: maer %f15, %f15, %f15 +0xb3 0x2e 0xf0 0xff + +# CHECK: may %f0, %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x3a + +# CHECK: may %f0, %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x3a + +# CHECK: may %f0, %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x3a + +# CHECK: may %f0, %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x3a + +# CHECK: may %f0, %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x3a + +# CHECK: may %f0, %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x3a + +# CHECK: may %f0, %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x3a + +# CHECK: may %f13, %f0, 0 +0xed 0x00 0x00 0x00 0xd0 0x3a + +# CHECK: may %f13, %f15, 0 +0xed 0xf0 0x00 0x00 0xd0 0x3a + +# CHECK: mayh %f0, %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x3c + +# CHECK: mayh %f0, %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x3c + +# CHECK: mayh %f0, %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x3c + +# CHECK: mayh %f0, %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x3c + +# CHECK: mayh %f0, %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x3c + +# CHECK: mayh %f0, %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x3c + +# CHECK: mayh %f0, %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x3c + +# CHECK: mayh %f15, %f0, 0 +0xed 0x00 0x00 0x00 0xf0 0x3c + +# CHECK: mayh %f15, %f15, 0 +0xed 0xf0 0x00 0x00 0xf0 0x3c + +# CHECK: mayhr %f0, %f0, %f0 +0xb3 0x3c 0x00 0x00 + +# CHECK: mayhr %f0, %f0, %f15 +0xb3 0x3c 0x00 0x0f + +# CHECK: mayhr %f0, %f15, %f0 +0xb3 0x3c 0x00 0xf0 + +# CHECK: mayhr %f15, %f0, %f0 +0xb3 0x3c 0xf0 0x00 + +# CHECK: mayhr %f7, %f8, %f9 +0xb3 0x3c 0x70 0x89 + +# CHECK: mayhr %f15, %f15, %f15 +0xb3 0x3c 0xf0 0xff + +# CHECK: mayl %f0, %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x38 + +# CHECK: mayl %f0, %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x38 + +# CHECK: mayl %f0, %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x38 + +# CHECK: mayl %f0, %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x38 + +# CHECK: mayl %f0, %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x38 + +# CHECK: mayl %f0, %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x38 + +# CHECK: mayl %f0, %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x38 + +# CHECK: mayl %f15, %f0, 0 +0xed 0x00 0x00 0x00 0xf0 0x38 + +# CHECK: mayl %f15, %f15, 0 +0xed 0xf0 0x00 0x00 0xf0 0x38 + +# CHECK: maylr %f0, %f0, %f0 +0xb3 0x38 0x00 0x00 + +# CHECK: maylr %f0, %f0, %f15 +0xb3 0x38 0x00 0x0f + +# CHECK: maylr %f0, %f15, %f0 +0xb3 0x38 0x00 0xf0 + +# CHECK: maylr %f15, %f0, %f0 +0xb3 0x38 0xf0 0x00 + +# CHECK: maylr %f7, %f8, %f9 +0xb3 0x38 0x70 0x89 + +# CHECK: maylr %f15, %f15, %f15 +0xb3 0x38 0xf0 0xff + +# CHECK: mayr %f0, %f0, %f0 +0xb3 0x3a 0x00 0x00 + +# CHECK: mayr %f0, %f0, %f15 +0xb3 0x3a 0x00 0x0f + +# CHECK: mayr %f0, %f15, %f0 +0xb3 0x3a 0x00 0xf0 + +# CHECK: mayr %f13, %f0, %f0 +0xb3 0x3a 0xd0 0x00 + +# CHECK: mayr %f5, %f8, %f9 +0xb3 0x3a 0x50 0x89 + +# CHECK: mayr %f13, %f15, %f15 +0xb3 0x3a 0xd0 0xff + # CHECK: mc 0, 0 0xaf 0x00 0x00 0x00 @@ -8356,6 +9399,27 @@ # CHECK: mc 4095(%r15), 42 0xaf 0x2a 0xff 0xff +# CHECK: md %f0, 0 +0x6c 0x00 0x00 0x00 + +# CHECK: md %f0, 4095 +0x6c 0x00 0x0f 0xff + +# CHECK: md %f0, 0(%r1) +0x6c 0x00 0x10 0x00 + +# CHECK: md %f0, 0(%r15) +0x6c 0x00 0xf0 0x00 + +# CHECK: md %f0, 4095(%r1,%r15) +0x6c 0x01 0xff 0xff + +# CHECK: md %f0, 4095(%r15,%r1) +0x6c 0x0f 0x1f 0xff + +# CHECK: md %f15, 0 +0x6c 0xf0 0x00 0x00 + # CHECK: mdb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x1c @@ -8389,6 +9453,27 @@ # CHECK: mdbr %f15, %f0 0xb3 0x1c 0x00 0xf0 +# CHECK: mde %f0, 0 +0x7c 0x00 0x00 0x00 + +# CHECK: mde %f0, 4095 +0x7c 0x00 0x0f 0xff + +# CHECK: mde %f0, 0(%r1) +0x7c 0x00 0x10 0x00 + +# CHECK: mde %f0, 0(%r15) +0x7c 0x00 0xf0 0x00 + +# CHECK: mde %f0, 4095(%r1,%r15) +0x7c 0x01 0xff 0xff + +# CHECK: mde %f0, 4095(%r15,%r1) +0x7c 0x0f 0x1f 0xff + +# CHECK: mde %f15, 0 +0x7c 0xf0 0x00 0x00 + # CHECK: mdeb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x0c @@ -8422,6 +9507,51 @@ # CHECK: mdebr %f15, %f0 0xb3 0x0c 0x00 0xf0 +# CHECK: mder %f0, %f0 +0x3c 0x00 + +# CHECK: mder %f0, %f15 +0x3c 0x0f + +# CHECK: mder %f7, %f8 +0x3c 0x78 + +# CHECK: mder %f15, %f0 +0x3c 0xf0 + +# CHECK: mdr %f0, %f0 +0x2c 0x00 + +# CHECK: mdr %f0, %f15 +0x2c 0x0f + +# CHECK: mdr %f7, %f8 +0x2c 0x78 + +# CHECK: mdr %f15, %f0 +0x2c 0xf0 + +# CHECK: mee %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x37 + +# CHECK: mee %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x37 + +# CHECK: mee %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x37 + +# CHECK: mee %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x37 + +# CHECK: mee %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x37 + +# CHECK: mee %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x37 + +# CHECK: mee %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x37 + # CHECK: meeb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x17 @@ -8455,6 +9585,18 @@ # CHECK: meebr %f15, %f0 0xb3 0x17 0x00 0xf0 +# CHECK: meer %f0, %f0 +0xb3 0x37 0x00 0x00 + +# CHECK: meer %f0, %f15 +0xb3 0x37 0x00 0x0f + +# CHECK: meer %f7, %f8 +0xb3 0x37 0x00 0x78 + +# CHECK: meer %f15, %f0 +0xb3 0x37 0x00 0xf0 + # CHECK: mfy %r0, -524288 0xe3 0x00 0x00 0x00 0x80 0x5c @@ -8731,6 +9873,33 @@ # CHECK: ms %r15, 0 0x71 0xf0 0x00 0x00 +# CHECK: msd %f0, %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x3f + +# CHECK: msd %f0, %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x3f + +# CHECK: msd %f0, %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x3f + +# CHECK: msd %f0, %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x3f + +# CHECK: msd %f0, %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x3f + +# CHECK: msd %f0, %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x3f + +# CHECK: msd %f0, %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x3f + +# CHECK: msd %f15, %f0, 0 +0xed 0x00 0x00 0x00 0xf0 0x3f + +# CHECK: msd %f15, %f15, 0 +0xed 0xf0 0x00 0x00 0xf0 0x3f + # CHECK: msdb %f0, %f0, 0 0xed 0x00 0x00 0x00 0x00 0x1f @@ -8776,6 +9945,51 @@ # CHECK: msdbr %f15, %f15, %f15 0xb3 0x1f 0xf0 0xff +# CHECK: msdr %f0, %f0, %f0 +0xb3 0x3f 0x00 0x00 + +# CHECK: msdr %f0, %f0, %f15 +0xb3 0x3f 0x00 0x0f + +# CHECK: msdr %f0, %f15, %f0 +0xb3 0x3f 0x00 0xf0 + +# CHECK: msdr %f15, %f0, %f0 +0xb3 0x3f 0xf0 0x00 + +# CHECK: msdr %f7, %f8, %f9 +0xb3 0x3f 0x70 0x89 + +# CHECK: msdr %f15, %f15, %f15 +0xb3 0x3f 0xf0 0xff + +# CHECK: mse %f0, %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x2f + +# CHECK: mse %f0, %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x2f + +# CHECK: mse %f0, %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x2f + +# CHECK: mse %f0, %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x2f + +# CHECK: mse %f0, %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x2f + +# CHECK: mse %f0, %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x2f + +# CHECK: mse %f0, %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x2f + +# CHECK: mse %f15, %f0, 0 +0xed 0x00 0x00 0x00 0xf0 0x2f + +# CHECK: mse %f15, %f15, 0 +0xed 0xf0 0x00 0x00 0xf0 0x2f + # CHECK: mseb %f0, %f0, 0 0xed 0x00 0x00 0x00 0x00 0x0f @@ -8821,6 +10035,24 @@ # CHECK: msebr %f15, %f15, %f15 0xb3 0x0f 0xf0 0xff +# CHECK: mser %f0, %f0, %f0 +0xb3 0x2f 0x00 0x00 + +# CHECK: mser %f0, %f0, %f15 +0xb3 0x2f 0x00 0x0f + +# CHECK: mser %f0, %f15, %f0 +0xb3 0x2f 0x00 0xf0 + +# CHECK: mser %f15, %f0, %f0 +0xb3 0x2f 0xf0 0x00 + +# CHECK: mser %f7, %f8, %f9 +0xb3 0x2f 0x70 0x89 + +# CHECK: mser %f15, %f15, %f15 +0xb3 0x2f 0xf0 0xff + # CHECK: msfi %r0, -2147483648 0xc2 0x01 0x80 0x00 0x00 0x00 @@ -9427,6 +10659,27 @@ # CHECK: mxbr %f13, %f13 0xb3 0x4c 0x00 0xdd +# CHECK: mxd %f0, 0 +0x67 0x00 0x00 0x00 + +# CHECK: mxd %f0, 4095 +0x67 0x00 0x0f 0xff + +# CHECK: mxd %f0, 0(%r1) +0x67 0x00 0x10 0x00 + +# CHECK: mxd %f0, 0(%r15) +0x67 0x00 0xf0 0x00 + +# CHECK: mxd %f0, 4095(%r1,%r15) +0x67 0x01 0xff 0xff + +# CHECK: mxd %f0, 4095(%r15,%r1) +0x67 0x0f 0x1f 0xff + +# CHECK: mxd %f13, 0 +0x67 0xd0 0x00 0x00 + # CHECK: mxdb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x07 @@ -9460,6 +10713,165 @@ # CHECK: mxdbr %f13, %f0 0xb3 0x07 0x00 0xd0 +# CHECK: mxdr %f0, %f0 +0x27 0x00 + +# CHECK: mxdr %f0, %f15 +0x27 0x0f + +# CHECK: mxdr %f8, %f8 +0x27 0x88 + +# CHECK: mxdr %f13, %f0 +0x27 0xd0 + +# CHECK: mxr %f0, %f0 +0x26 0x00 + +# CHECK: mxr %f0, %f13 +0x26 0x0d + +# CHECK: mxr %f8, %f5 +0x26 0x85 + +# CHECK: mxr %f13, %f13 +0x26 0xdd + +# CHECK: my %f0, %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x3b + +# CHECK: my %f0, %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x3b + +# CHECK: my %f0, %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x3b + +# CHECK: my %f0, %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x3b + +# CHECK: my %f0, %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x3b + +# CHECK: my %f0, %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x3b + +# CHECK: my %f0, %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x3b + +# CHECK: my %f13, %f0, 0 +0xed 0x00 0x00 0x00 0xd0 0x3b + +# CHECK: my %f13, %f15, 0 +0xed 0xf0 0x00 0x00 0xd0 0x3b + +# CHECK: myh %f0, %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x3d + +# CHECK: myh %f0, %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x3d + +# CHECK: myh %f0, %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x3d + +# CHECK: myh %f0, %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x3d + +# CHECK: myh %f0, %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x3d + +# CHECK: myh %f0, %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x3d + +# CHECK: myh %f0, %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x3d + +# CHECK: myh %f15, %f0, 0 +0xed 0x00 0x00 0x00 0xf0 0x3d + +# CHECK: myh %f15, %f15, 0 +0xed 0xf0 0x00 0x00 0xf0 0x3d + +# CHECK: myhr %f0, %f0, %f0 +0xb3 0x3d 0x00 0x00 + +# CHECK: myhr %f0, %f0, %f15 +0xb3 0x3d 0x00 0x0f + +# CHECK: myhr %f0, %f15, %f0 +0xb3 0x3d 0x00 0xf0 + +# CHECK: myhr %f15, %f0, %f0 +0xb3 0x3d 0xf0 0x00 + +# CHECK: myhr %f7, %f8, %f9 +0xb3 0x3d 0x70 0x89 + +# CHECK: myhr %f15, %f15, %f15 +0xb3 0x3d 0xf0 0xff + +# CHECK: myl %f0, %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x39 + +# CHECK: myl %f0, %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x39 + +# CHECK: myl %f0, %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x39 + +# CHECK: myl %f0, %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x39 + +# CHECK: myl %f0, %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x39 + +# CHECK: myl %f0, %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x39 + +# CHECK: myl %f0, %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x39 + +# CHECK: myl %f15, %f0, 0 +0xed 0x00 0x00 0x00 0xf0 0x39 + +# CHECK: myl %f15, %f15, 0 +0xed 0xf0 0x00 0x00 0xf0 0x39 + +# CHECK: mylr %f0, %f0, %f0 +0xb3 0x39 0x00 0x00 + +# CHECK: mylr %f0, %f0, %f15 +0xb3 0x39 0x00 0x0f + +# CHECK: mylr %f0, %f15, %f0 +0xb3 0x39 0x00 0xf0 + +# CHECK: mylr %f15, %f0, %f0 +0xb3 0x39 0xf0 0x00 + +# CHECK: mylr %f7, %f8, %f9 +0xb3 0x39 0x70 0x89 + +# CHECK: mylr %f15, %f15, %f15 +0xb3 0x39 0xf0 0xff + +# CHECK: myr %f0, %f0, %f0 +0xb3 0x3b 0x00 0x00 + +# CHECK: myr %f0, %f0, %f15 +0xb3 0x3b 0x00 0x0f + +# CHECK: myr %f0, %f15, %f0 +0xb3 0x3b 0x00 0xf0 + +# CHECK: myr %f13, %f0, %f0 +0xb3 0x3b 0xd0 0x00 + +# CHECK: myr %f5, %f8, %f9 +0xb3 0x3b 0x50 0x89 + +# CHECK: myr %f13, %f15, %f15 +0xb3 0x3b 0xd0 0xff + # CHECK: n %r0, 0 0x54 0x00 0x00 0x00 @@ -10504,6 +11916,27 @@ # CHECK: sar %a15, %r15 0xb2 0x4e 0x00 0xff +# CHECK: sd %f0, 0 +0x6b 0x00 0x00 0x00 + +# CHECK: sd %f0, 4095 +0x6b 0x00 0x0f 0xff + +# CHECK: sd %f0, 0(%r1) +0x6b 0x00 0x10 0x00 + +# CHECK: sd %f0, 0(%r15) +0x6b 0x00 0xf0 0x00 + +# CHECK: sd %f0, 4095(%r1,%r15) +0x6b 0x01 0xff 0xff + +# CHECK: sd %f0, 4095(%r15,%r1) +0x6b 0x0f 0x1f 0xff + +# CHECK: sd %f15, 0 +0x6b 0xf0 0x00 0x00 + # CHECK: sdb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x1b @@ -10537,6 +11970,39 @@ # CHECK: sdbr %f15, %f0 0xb3 0x1b 0x00 0xf0 +# CHECK: sdr %f0, %f0 +0x2b 0x00 + +# CHECK: sdr %f0, %f15 +0x2b 0x0f + +# CHECK: sdr %f7, %f8 +0x2b 0x78 + +# CHECK: sdr %f15, %f0 +0x2b 0xf0 + +# CHECK: se %f0, 0 +0x7b 0x00 0x00 0x00 + +# CHECK: se %f0, 4095 +0x7b 0x00 0x0f 0xff + +# CHECK: se %f0, 0(%r1) +0x7b 0x00 0x10 0x00 + +# CHECK: se %f0, 0(%r15) +0x7b 0x00 0xf0 0x00 + +# CHECK: se %f0, 4095(%r1,%r15) +0x7b 0x01 0xff 0xff + +# CHECK: se %f0, 4095(%r15,%r1) +0x7b 0x0f 0x1f 0xff + +# CHECK: se %f15, 0 +0x7b 0xf0 0x00 0x00 + # CHECK: seb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x0b @@ -10570,6 +12036,18 @@ # CHECK: sebr %f15, %f0 0xb3 0x0b 0x00 0xf0 +# CHECK: ser %f0, %f0 +0x3b 0x00 + +# CHECK: ser %f0, %f15 +0x3b 0x0f + +# CHECK: ser %f7, %f8 +0x3b 0x78 + +# CHECK: ser %f15, %f0 +0x3b 0xf0 + # CHECK: sfasr %r0 0xb3 0x85 0x00 0x00 @@ -11281,6 +12759,27 @@ # CHECK: spm %r15 0x04 0xf0 +# CHECK: sqd %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x35 + +# CHECK: sqd %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x35 + +# CHECK: sqd %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x35 + +# CHECK: sqd %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x35 + +# CHECK: sqd %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x35 + +# CHECK: sqd %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x35 + +# CHECK: sqd %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x35 + # CHECK: sqdb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x15 @@ -11314,6 +12813,39 @@ # CHECK: sqdbr %f15, %f0 0xb3 0x15 0x00 0xf0 +# CHECK: sqdr %f0, %f0 +0xb2 0x44 0x00 0x00 + +# CHECK: sqdr %f0, %f15 +0xb2 0x44 0x00 0x0f + +# CHECK: sqdr %f7, %f8 +0xb2 0x44 0x00 0x78 + +# CHECK: sqdr %f15, %f0 +0xb2 0x44 0x00 0xf0 + +# CHECK: sqe %f0, 0 +0xed 0x00 0x00 0x00 0x00 0x34 + +# CHECK: sqe %f0, 4095 +0xed 0x00 0x0f 0xff 0x00 0x34 + +# CHECK: sqe %f0, 0(%r1) +0xed 0x00 0x10 0x00 0x00 0x34 + +# CHECK: sqe %f0, 0(%r15) +0xed 0x00 0xf0 0x00 0x00 0x34 + +# CHECK: sqe %f0, 4095(%r1,%r15) +0xed 0x01 0xff 0xff 0x00 0x34 + +# CHECK: sqe %f0, 4095(%r15,%r1) +0xed 0x0f 0x1f 0xff 0x00 0x34 + +# CHECK: sqe %f15, 0 +0xed 0xf0 0x00 0x00 0x00 0x34 + # CHECK: sqeb %f0, 0 0xed 0x00 0x00 0x00 0x00 0x14 @@ -11347,6 +12879,18 @@ # CHECK: sqebr %f15, %f0 0xb3 0x14 0x00 0xf0 +# CHECK: sqer %f0, %f0 +0xb2 0x45 0x00 0x00 + +# CHECK: sqer %f0, %f15 +0xb2 0x45 0x00 0x0f + +# CHECK: sqer %f7, %f8 +0xb2 0x45 0x00 0x78 + +# CHECK: sqer %f15, %f0 +0xb2 0x45 0x00 0xf0 + # CHECK: sqxbr %f0, %f0 0xb3 0x16 0x00 0x00 @@ -11359,6 +12903,18 @@ # CHECK: sqxbr %f13, %f0 0xb3 0x16 0x00 0xd0 +# CHECK: sqxr %f0, %f0 +0xb3 0x36 0x00 0x00 + +# CHECK: sqxr %f0, %f13 +0xb3 0x36 0x00 0x0d + +# CHECK: sqxr %f8, %f8 +0xb3 0x36 0x00 0x88 + +# CHECK: sqxr %f13, %f0 +0xb3 0x36 0x00 0xd0 + # CHECK: sr %r0, %r0 0x1b 0x00 @@ -12730,6 +14286,39 @@ # CHECK: sty %r15, 0 0xe3 0xf0 0x00 0x00 0x00 0x50 +# CHECK: su %f0, 0 +0x7f 0x00 0x00 0x00 + +# CHECK: su %f0, 4095 +0x7f 0x00 0x0f 0xff + +# CHECK: su %f0, 0(%r1) +0x7f 0x00 0x10 0x00 + +# CHECK: su %f0, 0(%r15) +0x7f 0x00 0xf0 0x00 + +# CHECK: su %f0, 4095(%r1,%r15) +0x7f 0x01 0xff 0xff + +# CHECK: su %f0, 4095(%r15,%r1) +0x7f 0x0f 0x1f 0xff + +# CHECK: su %f15, 0 +0x7f 0xf0 0x00 0x00 + +# CHECK: sur %f0, %f0 +0x3f 0x00 + +# CHECK: sur %f0, %f15 +0x3f 0x0f + +# CHECK: sur %f7, %f8 +0x3f 0x78 + +# CHECK: sur %f15, %f0 +0x3f 0xf0 + # CHECK: svc 0 0x0a 0x00 @@ -12742,6 +14331,39 @@ # CHECK: svc 255 0x0a 0xff +# CHECK: sw %f0, 0 +0x6f 0x00 0x00 0x00 + +# CHECK: sw %f0, 4095 +0x6f 0x00 0x0f 0xff + +# CHECK: sw %f0, 0(%r1) +0x6f 0x00 0x10 0x00 + +# CHECK: sw %f0, 0(%r15) +0x6f 0x00 0xf0 0x00 + +# CHECK: sw %f0, 4095(%r1,%r15) +0x6f 0x01 0xff 0xff + +# CHECK: sw %f0, 4095(%r15,%r1) +0x6f 0x0f 0x1f 0xff + +# CHECK: sw %f15, 0 +0x6f 0xf0 0x00 0x00 + +# CHECK: swr %f0, %f0 +0x2f 0x00 + +# CHECK: swr %f0, %f15 +0x2f 0x0f + +# CHECK: swr %f7, %f8 +0x2f 0x78 + +# CHECK: swr %f15, %f0 +0x2f 0xf0 + # CHECK: sxbr %f0, %f0 0xb3 0x4b 0x00 0x00 @@ -12754,6 +14376,18 @@ # CHECK: sxbr %f13, %f0 0xb3 0x4b 0x00 0xd0 +# CHECK: sxr %f0, %f0 +0x37 0x00 + +# CHECK: sxr %f0, %f13 +0x37 0x0d + +# CHECK: sxr %f8, %f8 +0x37 0x88 + +# CHECK: sxr %f13, %f0 +0x37 0xd0 + # CHECK: sy %r0, -524288 0xe3 0x00 0x00 0x00 0x80 0x5b @@ -12805,6 +14439,36 @@ # CHECK: tam 0x01 0x0b +# CHECK: tbdr %f0, 0, %f0 +0xb3 0x51 0x00 0x00 + +# CHECK: tbdr %f0, 0, %f15 +0xb3 0x51 0x00 0x0f + +# CHECK: tbdr %f0, 15, %f0 +0xb3 0x51 0xf0 0x00 + +# CHECK: tbdr %f4, 5, %f6 +0xb3 0x51 0x50 0x46 + +# CHECK: tbdr %f15, 0, %f0 +0xb3 0x51 0x00 0xf0 + +# CHECK: tbedr %f0, 0, %f0 +0xb3 0x50 0x00 0x00 + +# CHECK: tbedr %f0, 0, %f15 +0xb3 0x50 0x00 0x0f + +# CHECK: tbedr %f0, 15, %f0 +0xb3 0x50 0xf0 0x00 + +# CHECK: tbedr %f4, 5, %f6 +0xb3 0x50 0x50 0x46 + +# CHECK: tbedr %f15, 0, %f0 +0xb3 0x50 0x00 0xf0 + # CHECK: tbegin 0, 0 0xe5 0x60 0x00 0x00 0x00 0x00 @@ -12937,6 +14601,30 @@ # CHECK: tend 0xb2 0xf8 0x00 0x00 +# CHECK: thder %f0, %f9 +0xb3 0x58 0x00 0x09 + +# CHECK: thder %f0, %f15 +0xb3 0x58 0x00 0x0f + +# CHECK: thder %f15, %f0 +0xb3 0x58 0x00 0xf0 + +# CHECK: thder %f15, %f9 +0xb3 0x58 0x00 0xf9 + +# CHECK: thdr %f0, %f9 +0xb3 0x59 0x00 0x09 + +# CHECK: thdr %f0, %f15 +0xb3 0x59 0x00 0x0f + +# CHECK: thdr %f15, %f0 +0xb3 0x59 0x00 0xf0 + +# CHECK: thdr %f15, %f9 +0xb3 0x59 0x00 0xf9 + # CHECK: tm 0, 0 0x91 0x00 0x00 0x00 diff --git a/llvm/test/MC/SystemZ/insn-bad.s b/llvm/test/MC/SystemZ/insn-bad.s index aeef916..da9a531 100644 --- a/llvm/test/MC/SystemZ/insn-bad.s +++ b/llvm/test/MC/SystemZ/insn-bad.s @@ -13,6 +13,14 @@ a %r0, 4096 #CHECK: error: invalid operand +#CHECK: ad %f0, -1 +#CHECK: error: invalid operand +#CHECK: ad %f0, 4096 + + ad %f0, -1 + ad %f0, 4096 + +#CHECK: error: invalid operand #CHECK: adb %f0, -1 #CHECK: error: invalid operand #CHECK: adb %f0, 4096 @@ -21,6 +29,14 @@ adb %f0, 4096 #CHECK: error: invalid operand +#CHECK: ae %f0, -1 +#CHECK: error: invalid operand +#CHECK: ae %f0, 4096 + + ae %f0, -1 + ae %f0, 4096 + +#CHECK: error: invalid operand #CHECK: aeb %f0, -1 #CHECK: error: invalid operand #CHECK: aeb %f0, 4096 @@ -328,6 +344,22 @@ asi 0, -129 asi 0, 128 +#CHECK: error: invalid operand +#CHECK: au %f0, -1 +#CHECK: error: invalid operand +#CHECK: au %f0, 4096 + + au %f0, -1 + au %f0, 4096 + +#CHECK: error: invalid operand +#CHECK: aw %f0, -1 +#CHECK: error: invalid operand +#CHECK: aw %f0, 4096 + + aw %f0, -1 + aw %f0, 4096 + #CHECK: error: invalid register pair #CHECK: axbr %f0, %f2 #CHECK: error: invalid register pair @@ -336,6 +368,13 @@ axbr %f0, %f2 axbr %f2, %f0 +#CHECK: error: invalid register pair +#CHECK: axr %f0, %f2 +#CHECK: error: invalid register pair +#CHECK: axr %f2, %f0 + + axr %f0, %f2 + axr %f2, %f0 #CHECK: error: invalid operand #CHECK: ay %r0, -524289 @@ -613,6 +652,14 @@ c %r0, 4096 #CHECK: error: invalid operand +#CHECK: cd %f0, -1 +#CHECK: error: invalid operand +#CHECK: cd %f0, 4096 + + cd %f0, -1 + cd %f0, 4096 + +#CHECK: error: invalid operand #CHECK: cdb %f0, -1 #CHECK: error: invalid operand #CHECK: cdb %f0, 4096 @@ -692,6 +739,14 @@ cdsy %r0, %r0, 0(%r1,%r2) #CHECK: error: invalid operand +#CHECK: ce %f0, -1 +#CHECK: error: invalid operand +#CHECK: ce %f0, 4096 + + ce %f0, -1 + ce %f0, 4096 + +#CHECK: error: invalid operand #CHECK: ceb %f0, -1 #CHECK: error: invalid operand #CHECK: ceb %f0, 4096 @@ -781,6 +836,17 @@ cfxbra %r0, 0, %f0, 0 #CHECK: error: invalid operand +#CHECK: cfxr %r0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: cfxr %r0, 16, %f0 +#CHECK: error: invalid register pair +#CHECK: cfxr %r0, 0, %f2 + + cfxr %r0, -1, %f0 + cfxr %r0, 16, %f0 + cfxr %r0, 0, %f2 + +#CHECK: error: invalid operand #CHECK: cg %r0, -524289 #CHECK: error: invalid operand #CHECK: cg %r0, 524288 @@ -999,6 +1065,17 @@ cgxbra %r0, 0, %f0, 0 #CHECK: error: invalid operand +#CHECK: cgxr %r0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: cgxr %r0, 16, %f0 +#CHECK: error: invalid register pair +#CHECK: cgxr %r0, 0, %f2 + + cgxr %r0, -1, %f0 + cgxr %r0, 16, %f0 + cgxr %r0, 0, %f2 + +#CHECK: error: invalid operand #CHECK: ch %r0, -1 #CHECK: error: invalid operand #CHECK: ch %r0, 4096 @@ -1967,6 +2044,11 @@ cxfbra %f0, 0, %r0, 0 #CHECK: error: invalid register pair +#CHECK: cxfr %f2, %r0 + + cxfr %f2, %r0 + +#CHECK: error: invalid register pair #CHECK: cxgbr %f2, %r0 cxgbr %f2, %r0 @@ -1976,6 +2058,11 @@ cxgbra %f0, 0, %r0, 0 +#CHECK: error: invalid register pair +#CHECK: cxgr %f2, %r0 + + cxgr %f2, %r0 + #CHECK: error: instruction requires: fp-extension #CHECK: cxlfbr %f0, 0, %r0, 0 @@ -1986,6 +2073,14 @@ cxlgbr %f0, 0, %r0, 0 +#CHECK: error: invalid register pair +#CHECK: cxr %f0, %f2 +#CHECK: error: invalid register pair +#CHECK: cxr %f2, %f0 + + cxr %f0, %f2 + cxr %f2, %f0 + #CHECK: error: invalid operand #CHECK: cy %r0, -524289 #CHECK: error: invalid operand @@ -2006,6 +2101,14 @@ d %r1, 0 #CHECK: error: invalid operand +#CHECK: dd %f0, -1 +#CHECK: error: invalid operand +#CHECK: dd %f0, 4096 + + dd %f0, -1 + dd %f0, 4096 + +#CHECK: error: invalid operand #CHECK: ddb %f0, -1 #CHECK: error: invalid operand #CHECK: ddb %f0, 4096 @@ -2014,6 +2117,14 @@ ddb %f0, 4096 #CHECK: error: invalid operand +#CHECK: de %f0, -1 +#CHECK: error: invalid operand +#CHECK: de %f0, 4096 + + de %f0, -1 + de %f0, 4096 + +#CHECK: error: invalid operand #CHECK: deb %f0, -1 #CHECK: error: invalid operand #CHECK: deb %f0, 4096 @@ -2167,6 +2278,14 @@ dxbr %f0, %f2 dxbr %f2, %f0 +#CHECK: error: invalid register pair +#CHECK: dxr %f0, %f2 +#CHECK: error: invalid register pair +#CHECK: dxr %f2, %f0 + + dxr %f0, %f2 + dxr %f2, %f0 + #CHECK: error: invalid operand #CHECK: ecag %r0, %r0, -524289 #CHECK: error: invalid operand @@ -2337,6 +2456,14 @@ fixbra %f0, 0, %f0, 0 #CHECK: error: invalid register pair +#CHECK: fixr %f0, %f2 +#CHECK: error: invalid register pair +#CHECK: fixr %f2, %f0 + + fixr %f0, %f2 + fixr %f2, %f0 + +#CHECK: error: invalid register pair #CHECK: flogr %r1, %r0 flogr %r1, %r0 @@ -2651,6 +2778,14 @@ lcxbr %f0, %f2 lcxbr %f2, %f0 +#CHECK: error: invalid register pair +#CHECK: lcxr %f0, %f2 +#CHECK: error: invalid register pair +#CHECK: lcxr %f2, %f0 + + lcxr %f0, %f2 + lcxr %f2, %f0 + #CHECK: error: invalid operand #CHECK: ld %f0, -1 #CHECK: error: invalid operand @@ -2680,6 +2815,11 @@ ldxbra %f0, 0, %f0, 0 +#CHECK: error: invalid register pair +#CHECK: ldxr %f0, %f2 + + ldxr %f0, %f2 + #CHECK: error: invalid operand #CHECK: ldy %f0, -524289 #CHECK: error: invalid operand @@ -2714,6 +2854,11 @@ lexbra %f0, 0, %f0, 0 +#CHECK: error: invalid register pair +#CHECK: lexr %f0, %f2 + + lexr %f0, %f2 + #CHECK: error: invalid operand #CHECK: ley %f0, -524289 #CHECK: error: invalid operand @@ -3102,6 +3247,14 @@ lnxbr %f0, %f2 lnxbr %f2, %f0 +#CHECK: error: invalid register pair +#CHECK: lnxr %f0, %f2 +#CHECK: error: invalid register pair +#CHECK: lnxr %f2, %f0 + + lnxr %f0, %f2 + lnxr %f2, %f0 + #CHECK: error: instruction requires: interlocked-access1 #CHECK: lpd %r0, 0, 0 lpd %r0, 0, 0 @@ -3129,6 +3282,19 @@ lpxbr %f0, %f2 lpxbr %f2, %f0 +#CHECK: error: invalid register pair +#CHECK: lpxr %f0, %f2 +#CHECK: error: invalid register pair +#CHECK: lpxr %f2, %f0 + + lpxr %f0, %f2 + lpxr %f2, %f0 + +#CHECK: error: invalid register pair +#CHECK: lrdr %f0, %f2 + + lrdr %f0, %f2 + #CHECK: error: offset out of range #CHECK: lrl %r0, -0x1000000002 #CHECK: error: offset out of range @@ -3191,6 +3357,25 @@ ltxbr %f0, %f14 ltxbr %f14, %f0 +#CHECK: error: invalid register pair +#CHECK: ltxr %f0, %f14 +#CHECK: error: invalid register pair +#CHECK: ltxr %f14, %f0 + + ltxr %f0, %f14 + ltxr %f14, %f0 + +#CHECK: error: invalid operand +#CHECK: lxd %f0, -1 +#CHECK: error: invalid operand +#CHECK: lxd %f0, 4096 +#CHECK: error: invalid register pair +#CHECK: lxd %f2, 0 + + lxd %f0, -1 + lxd %f0, 4096 + lxd %f2, 0 + #CHECK: error: invalid operand #CHECK: lxdb %f0, -1 #CHECK: error: invalid operand @@ -3207,6 +3392,22 @@ lxdbr %f2, %f0 +#CHECK: error: invalid register pair +#CHECK: lxdr %f2, %f0 + + lxdr %f2, %f0 + +#CHECK: error: invalid operand +#CHECK: lxe %f0, -1 +#CHECK: error: invalid operand +#CHECK: lxe %f0, 4096 +#CHECK: error: invalid register pair +#CHECK: lxe %f2, 0 + + lxe %f0, -1 + lxe %f0, 4096 + lxe %f2, 0 + #CHECK: error: invalid operand #CHECK: lxeb %f0, -1 #CHECK: error: invalid operand @@ -3224,6 +3425,11 @@ lxebr %f2, %f0 #CHECK: error: invalid register pair +#CHECK: lxer %f2, %f0 + + lxer %f2, %f0 + +#CHECK: error: invalid register pair #CHECK: lxr %f0, %f2 #CHECK: error: invalid register pair #CHECK: lxr %f2, %f0 @@ -3256,6 +3462,14 @@ m %r1, 0 #CHECK: error: invalid operand +#CHECK: mad %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: mad %f0, %f0, 4096 + + mad %f0, %f0, -1 + mad %f0, %f0, 4096 + +#CHECK: error: invalid operand #CHECK: madb %f0, %f0, -1 #CHECK: error: invalid operand #CHECK: madb %f0, %f0, 4096 @@ -3264,6 +3478,14 @@ madb %f0, %f0, 4096 #CHECK: error: invalid operand +#CHECK: mae %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: mae %f0, %f0, 4096 + + mae %f0, %f0, -1 + mae %f0, %f0, 4096 + +#CHECK: error: invalid operand #CHECK: maeb %f0, %f0, -1 #CHECK: error: invalid operand #CHECK: maeb %f0, %f0, 4096 @@ -3272,6 +3494,38 @@ maeb %f0, %f0, 4096 #CHECK: error: invalid operand +#CHECK: may %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: may %f0, %f0, 4096 +#CHECK: error: invalid register pair +#CHECK: may %f2, %f0, 0 + + may %f0, %f0, -1 + may %f0, %f0, 4096 + may %f2, %f0, 0 + +#CHECK: error: invalid operand +#CHECK: mayh %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: mayh %f0, %f0, 4096 + + mayh %f0, %f0, -1 + mayh %f0, %f0, 4096 + +#CHECK: error: invalid operand +#CHECK: mayl %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: mayl %f0, %f0, 4096 + + mayl %f0, %f0, -1 + mayl %f0, %f0, 4096 + +#CHECK: error: invalid register pair +#CHECK: mayr %f2, %f0, %f0 + + mayr %f2, %f0, %f0 + +#CHECK: error: invalid operand #CHECK: mc -1, 0 #CHECK: error: invalid operand #CHECK: mc 4096, 0 @@ -3289,6 +3543,14 @@ mc 0, 256 #CHECK: error: invalid operand +#CHECK: md %f0, -1 +#CHECK: error: invalid operand +#CHECK: md %f0, 4096 + + md %f0, -1 + md %f0, 4096 + +#CHECK: error: invalid operand #CHECK: mdb %f0, -1 #CHECK: error: invalid operand #CHECK: mdb %f0, 4096 @@ -3297,6 +3559,14 @@ mdb %f0, 4096 #CHECK: error: invalid operand +#CHECK: mde %f0, -1 +#CHECK: error: invalid operand +#CHECK: mde %f0, 4096 + + mde %f0, -1 + mde %f0, 4096 + +#CHECK: error: invalid operand #CHECK: mdeb %f0, -1 #CHECK: error: invalid operand #CHECK: mdeb %f0, 4096 @@ -3305,6 +3575,22 @@ mdeb %f0, 4096 #CHECK: error: invalid operand +#CHECK: me %f0, -1 +#CHECK: error: invalid operand +#CHECK: me %f0, 4096 + + me %f0, -1 + me %f0, 4096 + +#CHECK: error: invalid operand +#CHECK: mee %f0, -1 +#CHECK: error: invalid operand +#CHECK: mee %f0, 4096 + + mee %f0, -1 + mee %f0, 4096 + +#CHECK: error: invalid operand #CHECK: meeb %f0, -1 #CHECK: error: invalid operand #CHECK: meeb %f0, 4096 @@ -3460,6 +3746,14 @@ ms %r0, 4096 #CHECK: error: invalid operand +#CHECK: msd %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: msd %f0, %f0, 4096 + + msd %f0, %f0, -1 + msd %f0, %f0, 4096 + +#CHECK: error: invalid operand #CHECK: msdb %f0, %f0, -1 #CHECK: error: invalid operand #CHECK: msdb %f0, %f0, 4096 @@ -3468,6 +3762,14 @@ msdb %f0, %f0, 4096 #CHECK: error: invalid operand +#CHECK: mse %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: mse %f0, %f0, 4096 + + mse %f0, %f0, -1 + mse %f0, %f0, 4096 + +#CHECK: error: invalid operand #CHECK: mseb %f0, %f0, -1 #CHECK: error: invalid operand #CHECK: mseb %f0, %f0, 4096 @@ -3903,6 +4205,17 @@ mxbr %f2, %f0 #CHECK: error: invalid register pair +#CHECK: mxd %f2, 0 +#CHECK: error: invalid operand +#CHECK: mxd %f0, -1 +#CHECK: error: invalid operand +#CHECK: mxd %f0, 4096 + + mxd %f2, 0 + mxd %f0, -1 + mxd %f0, 4096 + +#CHECK: error: invalid register pair #CHECK: mxdb %f2, 0 #CHECK: error: invalid operand #CHECK: mxdb %f0, -1 @@ -3918,6 +4231,51 @@ mxdbr %f2, %f0 +#CHECK: error: invalid register pair +#CHECK: mxdr %f2, %f0 + + mxdr %f2, %f0 + +#CHECK: error: invalid register pair +#CHECK: mxr %f0, %f2 +#CHECK: error: invalid register pair +#CHECK: mxr %f2, %f0 + + mxr %f0, %f2 + mxr %f2, %f0 + +#CHECK: error: invalid operand +#CHECK: my %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: my %f0, %f0, 4096 +#CHECK: error: invalid register pair +#CHECK: my %f2, %f0, 0 + + my %f0, %f0, -1 + my %f0, %f0, 4096 + my %f2, %f0, 0 + +#CHECK: error: invalid operand +#CHECK: myh %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: myh %f0, %f0, 4096 + + myh %f0, %f0, -1 + myh %f0, %f0, 4096 + +#CHECK: error: invalid operand +#CHECK: myl %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: myl %f0, %f0, 4096 + + myl %f0, %f0, -1 + myl %f0, %f0, 4096 + +#CHECK: error: invalid register pair +#CHECK: myr %f2, %f0, %f0 + + myr %f2, %f0, %f0 + #CHECK: error: invalid operand #CHECK: n %r0, -1 #CHECK: error: invalid operand @@ -4571,6 +4929,14 @@ s %r0, 4096 #CHECK: error: invalid operand +#CHECK: sd %f0, -1 +#CHECK: error: invalid operand +#CHECK: sd %f0, 4096 + + sd %f0, -1 + sd %f0, 4096 + +#CHECK: error: invalid operand #CHECK: sdb %f0, -1 #CHECK: error: invalid operand #CHECK: sdb %f0, 4096 @@ -4579,6 +4945,14 @@ sdb %f0, 4096 #CHECK: error: invalid operand +#CHECK: se %f0, -1 +#CHECK: error: invalid operand +#CHECK: se %f0, 4096 + + se %f0, -1 + se %f0, 4096 + +#CHECK: error: invalid operand #CHECK: seb %f0, -1 #CHECK: error: invalid operand #CHECK: seb %f0, 4096 @@ -4851,6 +5225,14 @@ sp 0(-), 0(1) #CHECK: error: invalid operand +#CHECK: sqd %f0, -1 +#CHECK: error: invalid operand +#CHECK: sqd %f0, 4096 + + sqd %f0, -1 + sqd %f0, 4096 + +#CHECK: error: invalid operand #CHECK: sqdb %f0, -1 #CHECK: error: invalid operand #CHECK: sqdb %f0, 4096 @@ -4859,6 +5241,14 @@ sqdb %f0, 4096 #CHECK: error: invalid operand +#CHECK: sqe %f0, -1 +#CHECK: error: invalid operand +#CHECK: sqe %f0, 4096 + + sqe %f0, -1 + sqe %f0, 4096 + +#CHECK: error: invalid operand #CHECK: sqeb %f0, -1 #CHECK: error: invalid operand #CHECK: sqeb %f0, 4096 @@ -4874,6 +5264,14 @@ sqxbr %f0, %f2 sqxbr %f2, %f0 +#CHECK: error: invalid register pair +#CHECK: sqxr %f0, %f2 +#CHECK: error: invalid register pair +#CHECK: sqxr %f2, %f0 + + sqxr %f0, %f2 + sqxr %f2, %f0 + #CHECK: error: invalid operand #CHECK: sra %r0,-1 #CHECK: error: invalid operand @@ -5358,6 +5756,22 @@ sty %r0, -524289 sty %r0, 524288 +#CHECK: error: invalid operand +#CHECK: su %f0, -1 +#CHECK: error: invalid operand +#CHECK: su %f0, 4096 + + su %f0, -1 + su %f0, 4096 + +#CHECK: error: invalid operand +#CHECK: sw %f0, -1 +#CHECK: error: invalid operand +#CHECK: sw %f0, 4096 + + sw %f0, -1 + sw %f0, 4096 + #CHECK: error: invalid register pair #CHECK: sxbr %f0, %f2 #CHECK: error: invalid register pair @@ -5366,6 +5780,14 @@ sxbr %f0, %f2 sxbr %f2, %f0 +#CHECK: error: invalid register pair +#CHECK: sxr %f0, %f2 +#CHECK: error: invalid register pair +#CHECK: sxr %f2, %f0 + + sxr %f0, %f2 + sxr %f2, %f0 + #CHECK: error: invalid operand #CHECK: sy %r0, -524289 #CHECK: error: invalid operand @@ -5375,6 +5797,22 @@ sy %r0, 524288 #CHECK: error: invalid operand +#CHECK: tbdr %f0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: tbdr %f0, 16, %f0 + + tbdr %f0, -1, %f0 + tbdr %f0, 16, %f0 + +#CHECK: error: invalid operand +#CHECK: tbedr %f0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: tbedr %f0, 16, %f0 + + tbedr %f0, -1, %f0 + tbedr %f0, 16, %f0 + +#CHECK: error: invalid operand #CHECK: tcdb %f0, -1 #CHECK: error: invalid operand #CHECK: tcdb %f0, 4096 diff --git a/llvm/test/MC/SystemZ/insn-good.s b/llvm/test/MC/SystemZ/insn-good.s index 54dd153..3e633de 100644 --- a/llvm/test/MC/SystemZ/insn-good.s +++ b/llvm/test/MC/SystemZ/insn-good.s @@ -17,6 +17,22 @@ a %r0, 4095(%r15,%r1) a %r15, 0 +#CHECK: ad %f0, 0 # encoding: [0x6a,0x00,0x00,0x00] +#CHECK: ad %f0, 4095 # encoding: [0x6a,0x00,0x0f,0xff] +#CHECK: ad %f0, 0(%r1) # encoding: [0x6a,0x00,0x10,0x00] +#CHECK: ad %f0, 0(%r15) # encoding: [0x6a,0x00,0xf0,0x00] +#CHECK: ad %f0, 4095(%r1,%r15) # encoding: [0x6a,0x01,0xff,0xff] +#CHECK: ad %f0, 4095(%r15,%r1) # encoding: [0x6a,0x0f,0x1f,0xff] +#CHECK: ad %f15, 0 # encoding: [0x6a,0xf0,0x00,0x00] + + ad %f0, 0 + ad %f0, 4095 + ad %f0, 0(%r1) + ad %f0, 0(%r15) + ad %f0, 4095(%r1,%r15) + ad %f0, 4095(%r15,%r1) + ad %f15, 0 + #CHECK: adb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x1a] #CHECK: adb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x1a] #CHECK: adb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x1a] @@ -43,6 +59,32 @@ adbr %f7, %f8 adbr %f15, %f0 +#CHECK: adr %f0, %f0 # encoding: [0x2a,0x00] +#CHECK: adr %f0, %f15 # encoding: [0x2a,0x0f] +#CHECK: adr %f7, %f8 # encoding: [0x2a,0x78] +#CHECK: adr %f15, %f0 # encoding: [0x2a,0xf0] + + adr %f0, %f0 + adr %f0, %f15 + adr %f7, %f8 + adr %f15, %f0 + +#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] +#CHECK: ae %f0, 0(%r15) # encoding: [0x7a,0x00,0xf0,0x00] +#CHECK: ae %f0, 4095(%r1,%r15) # encoding: [0x7a,0x01,0xff,0xff] +#CHECK: ae %f0, 4095(%r15,%r1) # encoding: [0x7a,0x0f,0x1f,0xff] +#CHECK: ae %f15, 0 # encoding: [0x7a,0xf0,0x00,0x00] + + ae %f0, 0 + ae %f0, 4095 + ae %f0, 0(%r1) + ae %f0, 0(%r15) + ae %f0, 4095(%r1,%r15) + ae %f0, 4095(%r15,%r1) + ae %f15, 0 + #CHECK: aeb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x0a] #CHECK: aeb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x0a] #CHECK: aeb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x0a] @@ -69,6 +111,16 @@ aebr %f7, %f8 aebr %f15, %f0 +#CHECK: aer %f0, %f0 # encoding: [0x3a,0x00] +#CHECK: aer %f0, %f15 # encoding: [0x3a,0x0f] +#CHECK: aer %f7, %f8 # encoding: [0x3a,0x78] +#CHECK: aer %f15, %f0 # encoding: [0x3a,0xf0] + + aer %f0, %f0 + aer %f0, %f15 + aer %f7, %f8 + aer %f15, %f0 + #CHECK: afi %r0, -2147483648 # encoding: [0xc2,0x09,0x80,0x00,0x00,0x00] #CHECK: afi %r0, -1 # encoding: [0xc2,0x09,0xff,0xff,0xff,0xff] #CHECK: afi %r0, 0 # encoding: [0xc2,0x09,0x00,0x00,0x00,0x00] @@ -571,6 +623,58 @@ asi 524287(%r1), 42 asi 524287(%r15), 42 +#CHECK: au %f0, 0 # encoding: [0x7e,0x00,0x00,0x00] +#CHECK: au %f0, 4095 # encoding: [0x7e,0x00,0x0f,0xff] +#CHECK: au %f0, 0(%r1) # encoding: [0x7e,0x00,0x10,0x00] +#CHECK: au %f0, 0(%r15) # encoding: [0x7e,0x00,0xf0,0x00] +#CHECK: au %f0, 4095(%r1,%r15) # encoding: [0x7e,0x01,0xff,0xff] +#CHECK: au %f0, 4095(%r15,%r1) # encoding: [0x7e,0x0f,0x1f,0xff] +#CHECK: au %f15, 0 # encoding: [0x7e,0xf0,0x00,0x00] + + au %f0, 0 + au %f0, 4095 + au %f0, 0(%r1) + au %f0, 0(%r15) + au %f0, 4095(%r1,%r15) + au %f0, 4095(%r15,%r1) + au %f15, 0 + +#CHECK: aur %f0, %f0 # encoding: [0x3e,0x00] +#CHECK: aur %f0, %f15 # encoding: [0x3e,0x0f] +#CHECK: aur %f7, %f8 # encoding: [0x3e,0x78] +#CHECK: aur %f15, %f0 # encoding: [0x3e,0xf0] + + aur %f0, %f0 + aur %f0, %f15 + aur %f7, %f8 + aur %f15, %f0 + +#CHECK: aw %f0, 0 # encoding: [0x6e,0x00,0x00,0x00] +#CHECK: aw %f0, 4095 # encoding: [0x6e,0x00,0x0f,0xff] +#CHECK: aw %f0, 0(%r1) # encoding: [0x6e,0x00,0x10,0x00] +#CHECK: aw %f0, 0(%r15) # encoding: [0x6e,0x00,0xf0,0x00] +#CHECK: aw %f0, 4095(%r1,%r15) # encoding: [0x6e,0x01,0xff,0xff] +#CHECK: aw %f0, 4095(%r15,%r1) # encoding: [0x6e,0x0f,0x1f,0xff] +#CHECK: aw %f15, 0 # encoding: [0x6e,0xf0,0x00,0x00] + + aw %f0, 0 + aw %f0, 4095 + aw %f0, 0(%r1) + aw %f0, 0(%r15) + aw %f0, 4095(%r1,%r15) + aw %f0, 4095(%r15,%r1) + aw %f15, 0 + +#CHECK: awr %f0, %f0 # encoding: [0x2e,0x00] +#CHECK: awr %f0, %f15 # encoding: [0x2e,0x0f] +#CHECK: awr %f7, %f8 # encoding: [0x2e,0x78] +#CHECK: awr %f15, %f0 # encoding: [0x2e,0xf0] + + awr %f0, %f0 + awr %f0, %f15 + awr %f7, %f8 + awr %f15, %f0 + #CHECK: axbr %f0, %f0 # encoding: [0xb3,0x4a,0x00,0x00] #CHECK: axbr %f0, %f13 # encoding: [0xb3,0x4a,0x00,0x0d] #CHECK: axbr %f8, %f8 # encoding: [0xb3,0x4a,0x00,0x88] @@ -581,6 +685,16 @@ axbr %f8, %f8 axbr %f13, %f0 +#CHECK: axr %f0, %f0 # encoding: [0x36,0x00] +#CHECK: axr %f0, %f13 # encoding: [0x36,0x0d] +#CHECK: axr %f8, %f8 # encoding: [0x36,0x88] +#CHECK: axr %f13, %f0 # encoding: [0x36,0xd0] + + axr %f0, %f0 + axr %f0, %f13 + axr %f8, %f8 + axr %f13, %f0 + #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] @@ -1885,6 +1999,22 @@ c %r0, 4095(%r15,%r1) c %r15, 0 +#CHECK: cd %f0, 0 # encoding: [0x69,0x00,0x00,0x00] +#CHECK: cd %f0, 4095 # encoding: [0x69,0x00,0x0f,0xff] +#CHECK: cd %f0, 0(%r1) # encoding: [0x69,0x00,0x10,0x00] +#CHECK: cd %f0, 0(%r15) # encoding: [0x69,0x00,0xf0,0x00] +#CHECK: cd %f0, 4095(%r1,%r15) # encoding: [0x69,0x01,0xff,0xff] +#CHECK: cd %f0, 4095(%r15,%r1) # encoding: [0x69,0x0f,0x1f,0xff] +#CHECK: cd %f15, 0 # encoding: [0x69,0xf0,0x00,0x00] + + cd %f0, 0 + cd %f0, 4095 + cd %f0, 0(%r1) + cd %f0, 0(%r15) + cd %f0, 4095(%r1,%r15) + cd %f0, 4095(%r15,%r1) + cd %f15, 0 + #CHECK: cdb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x19] #CHECK: cdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x19] #CHECK: cdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x19] @@ -1923,6 +2053,18 @@ cdfbr %f7, %r8 cdfbr %f15, %r15 +#CHECK: cdfr %f0, %r0 # encoding: [0xb3,0xb5,0x00,0x00] +#CHECK: cdfr %f0, %r15 # encoding: [0xb3,0xb5,0x00,0x0f] +#CHECK: cdfr %f15, %r0 # encoding: [0xb3,0xb5,0x00,0xf0] +#CHECK: cdfr %f7, %r8 # encoding: [0xb3,0xb5,0x00,0x78] +#CHECK: cdfr %f15, %r15 # encoding: [0xb3,0xb5,0x00,0xff] + + cdfr %f0, %r0 + cdfr %f0, %r15 + cdfr %f15, %r0 + cdfr %f7, %r8 + cdfr %f15, %r15 + #CHECK: cdgbr %f0, %r0 # encoding: [0xb3,0xa5,0x00,0x00] #CHECK: cdgbr %f0, %r15 # encoding: [0xb3,0xa5,0x00,0x0f] #CHECK: cdgbr %f15, %r0 # encoding: [0xb3,0xa5,0x00,0xf0] @@ -1935,6 +2077,28 @@ cdgbr %f7, %r8 cdgbr %f15, %r15 +#CHECK: cdgr %f0, %r0 # encoding: [0xb3,0xc5,0x00,0x00] +#CHECK: cdgr %f0, %r15 # encoding: [0xb3,0xc5,0x00,0x0f] +#CHECK: cdgr %f15, %r0 # encoding: [0xb3,0xc5,0x00,0xf0] +#CHECK: cdgr %f7, %r8 # encoding: [0xb3,0xc5,0x00,0x78] +#CHECK: cdgr %f15, %r15 # encoding: [0xb3,0xc5,0x00,0xff] + + cdgr %f0, %r0 + cdgr %f0, %r15 + cdgr %f15, %r0 + cdgr %f7, %r8 + cdgr %f15, %r15 + +#CHECK: cdr %f0, %f0 # encoding: [0x29,0x00] +#CHECK: cdr %f0, %f15 # encoding: [0x29,0x0f] +#CHECK: cdr %f7, %f8 # encoding: [0x29,0x78] +#CHECK: cdr %f15, %f0 # encoding: [0x29,0xf0] + + cdr %f0, %f0 + cdr %f0, %f15 + cdr %f7, %f8 + cdr %f15, %f0 + #CHECK: cds %r0, %r0, 0 # encoding: [0xbb,0x00,0x00,0x00] #CHECK: cds %r0, %r0, 4095 # encoding: [0xbb,0x00,0x0f,0xff] #CHECK: cds %r0, %r0, 0(%r1) # encoding: [0xbb,0x00,0x10,0x00] @@ -2001,6 +2165,22 @@ cdsy %r0, %r14, 0 cdsy %r14, %r0, 0 +#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] +#CHECK: ce %f0, 0(%r15) # encoding: [0x79,0x00,0xf0,0x00] +#CHECK: ce %f0, 4095(%r1,%r15) # encoding: [0x79,0x01,0xff,0xff] +#CHECK: ce %f0, 4095(%r15,%r1) # encoding: [0x79,0x0f,0x1f,0xff] +#CHECK: ce %f15, 0 # encoding: [0x79,0xf0,0x00,0x00] + + ce %f0, 0 + ce %f0, 4095 + ce %f0, 0(%r1) + ce %f0, 0(%r15) + ce %f0, 4095(%r1,%r15) + ce %f0, 4095(%r15,%r1) + ce %f15, 0 + #CHECK: ceb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x09] #CHECK: ceb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x09] #CHECK: ceb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x09] @@ -2039,6 +2219,18 @@ cefbr %f7, %r8 cefbr %f15, %r15 +#CHECK: cefr %f0, %r0 # encoding: [0xb3,0xb4,0x00,0x00] +#CHECK: cefr %f0, %r15 # encoding: [0xb3,0xb4,0x00,0x0f] +#CHECK: cefr %f15, %r0 # encoding: [0xb3,0xb4,0x00,0xf0] +#CHECK: cefr %f7, %r8 # encoding: [0xb3,0xb4,0x00,0x78] +#CHECK: cefr %f15, %r15 # encoding: [0xb3,0xb4,0x00,0xff] + + cefr %f0, %r0 + cefr %f0, %r15 + cefr %f15, %r0 + cefr %f7, %r8 + cefr %f15, %r15 + #CHECK: cegbr %f0, %r0 # encoding: [0xb3,0xa4,0x00,0x00] #CHECK: cegbr %f0, %r15 # encoding: [0xb3,0xa4,0x00,0x0f] #CHECK: cegbr %f15, %r0 # encoding: [0xb3,0xa4,0x00,0xf0] @@ -2051,6 +2243,28 @@ cegbr %f7, %r8 cegbr %f15, %r15 +#CHECK: cegr %f0, %r0 # encoding: [0xb3,0xc4,0x00,0x00] +#CHECK: cegr %f0, %r15 # encoding: [0xb3,0xc4,0x00,0x0f] +#CHECK: cegr %f15, %r0 # encoding: [0xb3,0xc4,0x00,0xf0] +#CHECK: cegr %f7, %r8 # encoding: [0xb3,0xc4,0x00,0x78] +#CHECK: cegr %f15, %r15 # encoding: [0xb3,0xc4,0x00,0xff] + + cegr %f0, %r0 + cegr %f0, %r15 + cegr %f15, %r0 + cegr %f7, %r8 + cegr %f15, %r15 + +#CHECK: cer %f0, %f0 # encoding: [0x39,0x00] +#CHECK: cer %f0, %f15 # encoding: [0x39,0x0f] +#CHECK: cer %f7, %f8 # encoding: [0x39,0x78] +#CHECK: cer %f15, %f0 # encoding: [0x39,0xf0] + + cer %f0, %f0 + cer %f0, %f15 + cer %f7, %f8 + cer %f15, %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] @@ -2077,6 +2291,18 @@ cfdbr %r4, 5, %f6 cfdbr %r15, 0, %f0 +#CHECK: cfdr %r0, 0, %f0 # encoding: [0xb3,0xb9,0x00,0x00] +#CHECK: cfdr %r0, 0, %f15 # encoding: [0xb3,0xb9,0x00,0x0f] +#CHECK: cfdr %r0, 15, %f0 # encoding: [0xb3,0xb9,0xf0,0x00] +#CHECK: cfdr %r4, 5, %f6 # encoding: [0xb3,0xb9,0x50,0x46] +#CHECK: cfdr %r15, 0, %f0 # encoding: [0xb3,0xb9,0x00,0xf0] + + cfdr %r0, 0, %f0 + cfdr %r0, 0, %f15 + cfdr %r0, 15, %f0 + cfdr %r4, 5, %f6 + cfdr %r15, 0, %f0 + #CHECK: cfebr %r0, 0, %f0 # encoding: [0xb3,0x98,0x00,0x00] #CHECK: cfebr %r0, 0, %f15 # encoding: [0xb3,0x98,0x00,0x0f] #CHECK: cfebr %r0, 15, %f0 # encoding: [0xb3,0x98,0xf0,0x00] @@ -2089,6 +2315,18 @@ cfebr %r4, 5, %f6 cfebr %r15, 0, %f0 +#CHECK: cfer %r0, 0, %f0 # encoding: [0xb3,0xb8,0x00,0x00] +#CHECK: cfer %r0, 0, %f15 # encoding: [0xb3,0xb8,0x00,0x0f] +#CHECK: cfer %r0, 15, %f0 # encoding: [0xb3,0xb8,0xf0,0x00] +#CHECK: cfer %r4, 5, %f6 # encoding: [0xb3,0xb8,0x50,0x46] +#CHECK: cfer %r15, 0, %f0 # encoding: [0xb3,0xb8,0x00,0xf0] + + cfer %r0, 0, %f0 + cfer %r0, 0, %f15 + cfer %r0, 15, %f0 + cfer %r4, 5, %f6 + cfer %r15, 0, %f0 + #CHECK: cfi %r0, -2147483648 # encoding: [0xc2,0x0d,0x80,0x00,0x00,0x00] #CHECK: cfi %r0, -1 # encoding: [0xc2,0x0d,0xff,0xff,0xff,0xff] #CHECK: cfi %r0, 0 # encoding: [0xc2,0x0d,0x00,0x00,0x00,0x00] @@ -2115,6 +2353,18 @@ cfxbr %r4, 5, %f8 cfxbr %r15, 0, %f0 +#CHECK: cfxr %r0, 0, %f0 # encoding: [0xb3,0xba,0x00,0x00] +#CHECK: cfxr %r0, 0, %f13 # encoding: [0xb3,0xba,0x00,0x0d] +#CHECK: cfxr %r0, 15, %f0 # encoding: [0xb3,0xba,0xf0,0x00] +#CHECK: cfxr %r4, 5, %f8 # encoding: [0xb3,0xba,0x50,0x48] +#CHECK: cfxr %r15, 0, %f0 # encoding: [0xb3,0xba,0x00,0xf0] + + cfxr %r0, 0, %f0 + cfxr %r0, 0, %f13 + cfxr %r0, 15, %f0 + cfxr %r4, 5, %f8 + cfxr %r15, 0, %f0 + #CHECK: cg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x20] #CHECK: cg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x20] #CHECK: cg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x20] @@ -2149,6 +2399,18 @@ cgdbr %r4, 5, %f6 cgdbr %r15, 0, %f0 +#CHECK: cgdr %r0, 0, %f0 # encoding: [0xb3,0xc9,0x00,0x00] +#CHECK: cgdr %r0, 0, %f15 # encoding: [0xb3,0xc9,0x00,0x0f] +#CHECK: cgdr %r0, 15, %f0 # encoding: [0xb3,0xc9,0xf0,0x00] +#CHECK: cgdr %r4, 5, %f6 # encoding: [0xb3,0xc9,0x50,0x46] +#CHECK: cgdr %r15, 0, %f0 # encoding: [0xb3,0xc9,0x00,0xf0] + + cgdr %r0, 0, %f0 + cgdr %r0, 0, %f15 + cgdr %r0, 15, %f0 + cgdr %r4, 5, %f6 + cgdr %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] @@ -2161,6 +2423,18 @@ cgebr %r4, 5, %f6 cgebr %r15, 0, %f0 +#CHECK: cger %r0, 0, %f0 # encoding: [0xb3,0xc8,0x00,0x00] +#CHECK: cger %r0, 0, %f15 # encoding: [0xb3,0xc8,0x00,0x0f] +#CHECK: cger %r0, 15, %f0 # encoding: [0xb3,0xc8,0xf0,0x00] +#CHECK: cger %r4, 5, %f6 # encoding: [0xb3,0xc8,0x50,0x46] +#CHECK: cger %r15, 0, %f0 # encoding: [0xb3,0xc8,0x00,0xf0] + + cger %r0, 0, %f0 + cger %r0, 0, %f15 + cger %r0, 15, %f0 + cger %r4, 5, %f6 + cger %r15, 0, %f0 + #CHECK: cgf %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x30] #CHECK: cgf %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x30] #CHECK: cgf %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x30] @@ -3063,6 +3337,18 @@ cgxbr %r4, 5, %f8 cgxbr %r15, 0, %f0 +#CHECK: cgxr %r0, 0, %f0 # encoding: [0xb3,0xca,0x00,0x00] +#CHECK: cgxr %r0, 0, %f13 # encoding: [0xb3,0xca,0x00,0x0d] +#CHECK: cgxr %r0, 15, %f0 # encoding: [0xb3,0xca,0xf0,0x00] +#CHECK: cgxr %r4, 5, %f8 # encoding: [0xb3,0xca,0x50,0x48] +#CHECK: cgxr %r15, 0, %f0 # encoding: [0xb3,0xca,0x00,0xf0] + + cgxr %r0, 0, %f0 + cgxr %r0, 0, %f13 + cgxr %r0, 15, %f0 + cgxr %r4, 5, %f8 + cgxr %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] @@ -6175,6 +6461,18 @@ cxfbr %f8, %r7 cxfbr %f13, %r15 +#CHECK: cxfr %f0, %r0 # encoding: [0xb3,0xb6,0x00,0x00] +#CHECK: cxfr %f0, %r15 # encoding: [0xb3,0xb6,0x00,0x0f] +#CHECK: cxfr %f13, %r0 # encoding: [0xb3,0xb6,0x00,0xd0] +#CHECK: cxfr %f8, %r7 # encoding: [0xb3,0xb6,0x00,0x87] +#CHECK: cxfr %f13, %r15 # encoding: [0xb3,0xb6,0x00,0xdf] + + cxfr %f0, %r0 + cxfr %f0, %r15 + cxfr %f13, %r0 + cxfr %f8, %r7 + cxfr %f13, %r15 + #CHECK: cxgbr %f0, %r0 # encoding: [0xb3,0xa6,0x00,0x00] #CHECK: cxgbr %f0, %r15 # encoding: [0xb3,0xa6,0x00,0x0f] #CHECK: cxgbr %f13, %r0 # encoding: [0xb3,0xa6,0x00,0xd0] @@ -6187,6 +6485,28 @@ cxgbr %f8, %r7 cxgbr %f13, %r15 +#CHECK: cxgr %f0, %r0 # encoding: [0xb3,0xc6,0x00,0x00] +#CHECK: cxgr %f0, %r15 # encoding: [0xb3,0xc6,0x00,0x0f] +#CHECK: cxgr %f13, %r0 # encoding: [0xb3,0xc6,0x00,0xd0] +#CHECK: cxgr %f8, %r7 # encoding: [0xb3,0xc6,0x00,0x87] +#CHECK: cxgr %f13, %r15 # encoding: [0xb3,0xc6,0x00,0xdf] + + cxgr %f0, %r0 + cxgr %f0, %r15 + cxgr %f13, %r0 + cxgr %f8, %r7 + cxgr %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] +#CHECK: cxr %f13, %f0 # encoding: [0xb3,0x69,0x00,0xd0] + + cxr %f0, %f0 + cxr %f0, %f13 + cxr %f8, %f8 + cxr %f13, %f0 + #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] @@ -6225,6 +6545,22 @@ d %r0, 4095(%r15,%r1) d %r14, 0 +#CHECK: dd %f0, 0 # encoding: [0x6d,0x00,0x00,0x00] +#CHECK: dd %f0, 4095 # encoding: [0x6d,0x00,0x0f,0xff] +#CHECK: dd %f0, 0(%r1) # encoding: [0x6d,0x00,0x10,0x00] +#CHECK: dd %f0, 0(%r15) # encoding: [0x6d,0x00,0xf0,0x00] +#CHECK: dd %f0, 4095(%r1,%r15) # encoding: [0x6d,0x01,0xff,0xff] +#CHECK: dd %f0, 4095(%r15,%r1) # encoding: [0x6d,0x0f,0x1f,0xff] +#CHECK: dd %f15, 0 # encoding: [0x6d,0xf0,0x00,0x00] + + dd %f0, 0 + dd %f0, 4095 + dd %f0, 0(%r1) + dd %f0, 0(%r15) + dd %f0, 4095(%r1,%r15) + dd %f0, 4095(%r15,%r1) + dd %f15, 0 + #CHECK: ddb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x1d] #CHECK: ddb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x1d] #CHECK: ddb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x1d] @@ -6251,6 +6587,32 @@ ddbr %f7, %f8 ddbr %f15, %f0 +#CHECK: ddr %f0, %f0 # encoding: [0x2d,0x00] +#CHECK: ddr %f0, %f15 # encoding: [0x2d,0x0f] +#CHECK: ddr %f7, %f8 # encoding: [0x2d,0x78] +#CHECK: ddr %f15, %f0 # encoding: [0x2d,0xf0] + + ddr %f0, %f0 + ddr %f0, %f15 + ddr %f7, %f8 + ddr %f15, %f0 + +#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] +#CHECK: de %f0, 0(%r15) # encoding: [0x7d,0x00,0xf0,0x00] +#CHECK: de %f0, 4095(%r1,%r15) # encoding: [0x7d,0x01,0xff,0xff] +#CHECK: de %f0, 4095(%r15,%r1) # encoding: [0x7d,0x0f,0x1f,0xff] +#CHECK: de %f15, 0 # encoding: [0x7d,0xf0,0x00,0x00] + + de %f0, 0 + de %f0, 4095 + de %f0, 0(%r1) + de %f0, 0(%r15) + de %f0, 4095(%r1,%r15) + de %f0, 4095(%r15,%r1) + de %f15, 0 + #CHECK: deb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x0d] #CHECK: deb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x0d] #CHECK: deb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x0d] @@ -6277,6 +6639,16 @@ debr %f7, %f8 debr %f15, %f0 +#CHECK: der %f0, %f0 # encoding: [0x3d,0x00] +#CHECK: der %f0, %f15 # encoding: [0x3d,0x0f] +#CHECK: der %f7, %f8 # encoding: [0x3d,0x78] +#CHECK: der %f15, %f0 # encoding: [0x3d,0xf0] + + der %f0, %f0 + der %f0, %f15 + der %f7, %f8 + der %f15, %f0 + #CHECK: didbr %f0, %f0, %f0, 0 # encoding: [0xb3,0x5b,0x00,0x00] #CHECK: didbr %f0, %f0, %f0, 15 # encoding: [0xb3,0x5b,0x0f,0x00] #CHECK: didbr %f0, %f0, %f15, 0 # encoding: [0xb3,0x5b,0x00,0x0f] @@ -6483,6 +6855,16 @@ dxbr %f8, %f8 dxbr %f13, %f0 +#CHECK: dxr %f0, %f0 # encoding: [0xb2,0x2d,0x00,0x00] +#CHECK: dxr %f0, %f13 # encoding: [0xb2,0x2d,0x00,0x0d] +#CHECK: dxr %f8, %f8 # encoding: [0xb2,0x2d,0x00,0x88] +#CHECK: dxr %f13, %f0 # encoding: [0xb2,0x2d,0x00,0xd0] + + dxr %f0, %f0 + dxr %f0, %f13 + dxr %f8, %f8 + dxr %f13, %f0 + #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] @@ -6672,6 +7054,16 @@ fidbr %f4, 5, %f6 fidbr %f15, 0, %f0 +#CHECK: fidr %f0, %f0 # encoding: [0xb3,0x7f,0x00,0x00] +#CHECK: fidr %f0, %f15 # encoding: [0xb3,0x7f,0x00,0x0f] +#CHECK: fidr %f4, %f6 # encoding: [0xb3,0x7f,0x00,0x46] +#CHECK: fidr %f15, %f0 # encoding: [0xb3,0x7f,0x00,0xf0] + + fidr %f0, %f0 + fidr %f0, %f15 + fidr %f4, %f6 + fidr %f15, %f0 + #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] @@ -6684,6 +7076,16 @@ fiebr %f4, 5, %f6 fiebr %f15, 0, %f0 +#CHECK: fier %f0, %f0 # encoding: [0xb3,0x77,0x00,0x00] +#CHECK: fier %f0, %f15 # encoding: [0xb3,0x77,0x00,0x0f] +#CHECK: fier %f4, %f6 # encoding: [0xb3,0x77,0x00,0x46] +#CHECK: fier %f15, %f0 # encoding: [0xb3,0x77,0x00,0xf0] + + fier %f0, %f0 + fier %f0, %f15 + fier %f4, %f6 + fier %f15, %f0 + #CHECK: fixbr %f0, 0, %f0 # encoding: [0xb3,0x47,0x00,0x00] #CHECK: fixbr %f0, 0, %f13 # encoding: [0xb3,0x47,0x00,0x0d] #CHECK: fixbr %f0, 15, %f0 # encoding: [0xb3,0x47,0xf0,0x00] @@ -6696,6 +7098,16 @@ fixbr %f4, 5, %f8 fixbr %f13, 0, %f0 +#CHECK: fixr %f0, %f0 # encoding: [0xb3,0x67,0x00,0x00] +#CHECK: fixr %f0, %f13 # encoding: [0xb3,0x67,0x00,0x0d] +#CHECK: fixr %f4, %f8 # encoding: [0xb3,0x67,0x00,0x48] +#CHECK: fixr %f13, %f0 # encoding: [0xb3,0x67,0x00,0xd0] + + fixr %f0, %f0 + fixr %f0, %f13 + fixr %f4, %f8 + fixr %f13, %f0 + #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] @@ -6706,6 +7118,26 @@ flogr %r10, %r9 flogr %r14, %r0 +#CHECK: hdr %f0, %f0 # encoding: [0x24,0x00] +#CHECK: hdr %f0, %f15 # encoding: [0x24,0x0f] +#CHECK: hdr %f7, %f8 # encoding: [0x24,0x78] +#CHECK: hdr %f15, %f0 # encoding: [0x24,0xf0] + + hdr %f0, %f0 + hdr %f0, %f15 + hdr %f7, %f8 + hdr %f15, %f0 + +#CHECK: her %f0, %f0 # encoding: [0x34,0x00] +#CHECK: her %f0, %f15 # encoding: [0x34,0x0f] +#CHECK: her %f7, %f8 # encoding: [0x34,0x78] +#CHECK: her %f15, %f0 # encoding: [0x34,0xf0] + + her %f0, %f0 + her %f0, %f15 + her %f7, %f8 + her %f15, %f0 + #CHECK: ic %r0, 0 # encoding: [0x43,0x00,0x00,0x00] #CHECK: ic %r0, 4095 # encoding: [0x43,0x00,0x0f,0xff] #CHECK: ic %r0, 0(%r1) # encoding: [0x43,0x00,0x10,0x00] @@ -7199,6 +7631,16 @@ lcdbr %f15,%f0 lcdbr %f15,%f9 +#CHECK: lcdr %f0, %f9 # encoding: [0x23,0x09] +#CHECK: lcdr %f0, %f15 # encoding: [0x23,0x0f] +#CHECK: lcdr %f15, %f0 # encoding: [0x23,0xf0] +#CHECK: lcdr %f15, %f9 # encoding: [0x23,0xf9] + + lcdr %f0,%f9 + lcdr %f0,%f15 + lcdr %f15,%f0 + lcdr %f15,%f9 + #CHECK: lcebr %f0, %f9 # encoding: [0xb3,0x03,0x00,0x09] #CHECK: lcebr %f0, %f15 # encoding: [0xb3,0x03,0x00,0x0f] #CHECK: lcebr %f15, %f0 # encoding: [0xb3,0x03,0x00,0xf0] @@ -7209,6 +7651,16 @@ lcebr %f15,%f0 lcebr %f15,%f9 +#CHECK: lcer %f0, %f9 # encoding: [0x33,0x09] +#CHECK: lcer %f0, %f15 # encoding: [0x33,0x0f] +#CHECK: lcer %f15, %f0 # encoding: [0x33,0xf0] +#CHECK: lcer %f15, %f9 # encoding: [0x33,0xf9] + + lcer %f0,%f9 + lcer %f0,%f15 + lcer %f15,%f0 + lcer %f15,%f9 + #CHECK: lcgfr %r0, %r0 # encoding: [0xb9,0x13,0x00,0x00] #CHECK: lcgfr %r0, %r15 # encoding: [0xb9,0x13,0x00,0x0f] #CHECK: lcgfr %r15, %r0 # encoding: [0xb9,0x13,0x00,0xf0] @@ -7249,6 +7701,16 @@ lcxbr %f13,%f0 lcxbr %f13,%f9 +#CHECK: lcxr %f0, %f8 # encoding: [0xb3,0x63,0x00,0x08] +#CHECK: lcxr %f0, %f13 # encoding: [0xb3,0x63,0x00,0x0d] +#CHECK: lcxr %f13, %f0 # encoding: [0xb3,0x63,0x00,0xd0] +#CHECK: lcxr %f13, %f9 # encoding: [0xb3,0x63,0x00,0xd9] + + lcxr %f0,%f8 + lcxr %f0,%f13 + lcxr %f13,%f0 + lcxr %f13,%f9 + #CHECK: ld %f0, 0 # encoding: [0x68,0x00,0x00,0x00] #CHECK: ld %f0, 4095 # encoding: [0x68,0x00,0x0f,0xff] #CHECK: ld %f0, 0(%r1) # encoding: [0x68,0x00,0x10,0x00] @@ -7265,6 +7727,22 @@ ld %f0, 4095(%r15,%r1) ld %f15, 0 +#CHECK: lde %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x24] +#CHECK: lde %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x24] +#CHECK: lde %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x24] +#CHECK: lde %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x24] +#CHECK: lde %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x24] +#CHECK: lde %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x24] +#CHECK: lde %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x24] + + lde %f0, 0 + lde %f0, 4095 + lde %f0, 0(%r1) + lde %f0, 0(%r15) + lde %f0, 4095(%r1,%r15) + lde %f0, 4095(%r15,%r1) + lde %f15, 0 + #CHECK: ldeb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x04] #CHECK: ldeb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x04] #CHECK: ldeb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x04] @@ -7289,6 +7767,14 @@ ldebr %f7, %f8 ldebr %f15, %f0 +#CHECK: lder %f0, %f15 # encoding: [0xb3,0x24,0x00,0x0f] +#CHECK: lder %f7, %f8 # encoding: [0xb3,0x24,0x00,0x78] +#CHECK: lder %f15, %f0 # encoding: [0xb3,0x24,0x00,0xf0] + + lder %f0, %f15 + lder %f7, %f8 + lder %f15, %f0 + #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] @@ -7323,6 +7809,18 @@ ldxbr %f13, %f0 ldxbr %f13, %f13 +#CHECK: ldxr %f0, %f0 # encoding: [0x25,0x00] +#CHECK: ldxr %f0, %f13 # encoding: [0x25,0x0d] +#CHECK: ldxr %f7, %f8 # encoding: [0x25,0x78] +#CHECK: ldxr %f15, %f0 # encoding: [0x25,0xf0] +#CHECK: ldxr %f15, %f13 # encoding: [0x25,0xfd] + + ldxr %f0, %f0 + ldxr %f0, %f13 + ldxr %f7, %f8 + ldxr %f15, %f0 + ldxr %f15, %f13 + #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] @@ -7373,6 +7871,18 @@ ledbr %f15, %f0 ledbr %f15, %f15 +#CHECK: ledr %f0, %f0 # encoding: [0x35,0x00] +#CHECK: ledr %f0, %f15 # encoding: [0x35,0x0f] +#CHECK: ledr %f7, %f8 # encoding: [0x35,0x78] +#CHECK: ledr %f15, %f0 # encoding: [0x35,0xf0] +#CHECK: ledr %f15, %f15 # encoding: [0x35,0xff] + + ledr %f0, %f0 + ledr %f0, %f15 + ledr %f7, %f8 + ledr %f15, %f0 + ledr %f15, %f15 + #CHECK: ler %f0, %f9 # encoding: [0x38,0x09] #CHECK: ler %f0, %f15 # encoding: [0x38,0x0f] #CHECK: ler %f15, %f0 # encoding: [0x38,0xf0] @@ -7395,6 +7905,18 @@ lexbr %f13, %f0 lexbr %f13, %f13 +#CHECK: lexr %f0, %f0 # encoding: [0xb3,0x66,0x00,0x00] +#CHECK: lexr %f0, %f13 # encoding: [0xb3,0x66,0x00,0x0d] +#CHECK: lexr %f7, %f8 # encoding: [0xb3,0x66,0x00,0x78] +#CHECK: lexr %f15, %f0 # encoding: [0xb3,0x66,0x00,0xf0] +#CHECK: lexr %f15, %f13 # encoding: [0xb3,0x66,0x00,0xfd] + + lexr %f0, %f0 + lexr %f0, %f13 + lexr %f7, %f8 + lexr %f15, %f0 + lexr %f15, %f13 + #CHECK: ley %f0, -524288 # encoding: [0xed,0x00,0x00,0x00,0x80,0x64] #CHECK: ley %f0, -1 # encoding: [0xed,0x00,0x0f,0xff,0xff,0x64] #CHECK: ley %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x64] @@ -8303,6 +8825,16 @@ lndbr %f15,%f0 lndbr %f15,%f9 +#CHECK: lndr %f0, %f9 # encoding: [0x21,0x09] +#CHECK: lndr %f0, %f15 # encoding: [0x21,0x0f] +#CHECK: lndr %f15, %f0 # encoding: [0x21,0xf0] +#CHECK: lndr %f15, %f9 # encoding: [0x21,0xf9] + + lndr %f0,%f9 + lndr %f0,%f15 + lndr %f15,%f0 + lndr %f15,%f9 + #CHECK: lnebr %f0, %f9 # encoding: [0xb3,0x01,0x00,0x09] #CHECK: lnebr %f0, %f15 # encoding: [0xb3,0x01,0x00,0x0f] #CHECK: lnebr %f15, %f0 # encoding: [0xb3,0x01,0x00,0xf0] @@ -8313,6 +8845,16 @@ lnebr %f15,%f0 lnebr %f15,%f9 +#CHECK: lner %f0, %f9 # encoding: [0x31,0x09] +#CHECK: lner %f0, %f15 # encoding: [0x31,0x0f] +#CHECK: lner %f15, %f0 # encoding: [0x31,0xf0] +#CHECK: lner %f15, %f9 # encoding: [0x31,0xf9] + + lner %f0,%f9 + lner %f0,%f15 + lner %f15,%f0 + lner %f15,%f9 + #CHECK: lngfr %r0, %r0 # encoding: [0xb9,0x11,0x00,0x00] #CHECK: lngfr %r0, %r15 # encoding: [0xb9,0x11,0x00,0x0f] #CHECK: lngfr %r15, %r0 # encoding: [0xb9,0x11,0x00,0xf0] @@ -8353,6 +8895,16 @@ lnxbr %f13,%f0 lnxbr %f13,%f9 +#CHECK: lnxr %f0, %f8 # encoding: [0xb3,0x61,0x00,0x08] +#CHECK: lnxr %f0, %f13 # encoding: [0xb3,0x61,0x00,0x0d] +#CHECK: lnxr %f13, %f0 # encoding: [0xb3,0x61,0x00,0xd0] +#CHECK: lnxr %f13, %f9 # encoding: [0xb3,0x61,0x00,0xd9] + + lnxr %f0,%f8 + lnxr %f0,%f13 + lnxr %f13,%f0 + lnxr %f13,%f9 + #CHECK: lpdbr %f0, %f9 # encoding: [0xb3,0x10,0x00,0x09] #CHECK: lpdbr %f0, %f15 # encoding: [0xb3,0x10,0x00,0x0f] #CHECK: lpdbr %f15, %f0 # encoding: [0xb3,0x10,0x00,0xf0] @@ -8363,6 +8915,16 @@ lpdbr %f15,%f0 lpdbr %f15,%f9 +#CHECK: lpdr %f0, %f9 # encoding: [0x20,0x09] +#CHECK: lpdr %f0, %f15 # encoding: [0x20,0x0f] +#CHECK: lpdr %f15, %f0 # encoding: [0x20,0xf0] +#CHECK: lpdr %f15, %f9 # encoding: [0x20,0xf9] + + lpdr %f0,%f9 + lpdr %f0,%f15 + lpdr %f15,%f0 + lpdr %f15,%f9 + #CHECK: lpebr %f0, %f9 # encoding: [0xb3,0x00,0x00,0x09] #CHECK: lpebr %f0, %f15 # encoding: [0xb3,0x00,0x00,0x0f] #CHECK: lpebr %f15, %f0 # encoding: [0xb3,0x00,0x00,0xf0] @@ -8373,6 +8935,16 @@ lpebr %f15,%f0 lpebr %f15,%f9 +#CHECK: lper %f0, %f9 # encoding: [0x30,0x09] +#CHECK: lper %f0, %f15 # encoding: [0x30,0x0f] +#CHECK: lper %f15, %f0 # encoding: [0x30,0xf0] +#CHECK: lper %f15, %f9 # encoding: [0x30,0xf9] + + lper %f0,%f9 + lper %f0,%f15 + lper %f15,%f0 + lper %f15,%f9 + #CHECK: lpgfr %r0, %r0 # encoding: [0xb9,0x10,0x00,0x00] #CHECK: lpgfr %r0, %r15 # encoding: [0xb9,0x10,0x00,0x0f] #CHECK: lpgfr %r15, %r0 # encoding: [0xb9,0x10,0x00,0xf0] @@ -8435,6 +9007,16 @@ lpxbr %f13,%f0 lpxbr %f13,%f9 +#CHECK: lpxr %f0, %f8 # encoding: [0xb3,0x60,0x00,0x08] +#CHECK: lpxr %f0, %f13 # encoding: [0xb3,0x60,0x00,0x0d] +#CHECK: lpxr %f13, %f0 # encoding: [0xb3,0x60,0x00,0xd0] +#CHECK: lpxr %f13, %f9 # encoding: [0xb3,0x60,0x00,0xd9] + + lpxr %f0,%f8 + lpxr %f0,%f13 + lpxr %f13,%f0 + lpxr %f13,%f9 + #CHECK: lr %r0, %r9 # encoding: [0x18,0x09] #CHECK: lr %r0, %r15 # encoding: [0x18,0x0f] #CHECK: lr %r15, %r0 # encoding: [0x18,0xf0] @@ -8445,6 +9027,30 @@ lr %r15,%r0 lr %r15,%r9 +#CHECK: lrdr %f0, %f0 # encoding: [0x25,0x00] +#CHECK: lrdr %f0, %f13 # encoding: [0x25,0x0d] +#CHECK: lrdr %f7, %f8 # encoding: [0x25,0x78] +#CHECK: lrdr %f15, %f0 # encoding: [0x25,0xf0] +#CHECK: lrdr %f15, %f13 # encoding: [0x25,0xfd] + + lrdr %f0, %f0 + lrdr %f0, %f13 + lrdr %f7, %f8 + lrdr %f15, %f0 + lrdr %f15, %f13 + +#CHECK: lrer %f0, %f0 # encoding: [0x35,0x00] +#CHECK: lrer %f0, %f15 # encoding: [0x35,0x0f] +#CHECK: lrer %f7, %f8 # encoding: [0x35,0x78] +#CHECK: lrer %f15, %f0 # encoding: [0x35,0xf0] +#CHECK: lrer %f15, %f15 # encoding: [0x35,0xff] + + lrer %f0, %f0 + lrer %f0, %f15 + lrer %f7, %f8 + lrer %f15, %f0 + lrer %f15, %f15 + #CHECK: lrl %r0, .[[LAB:L.*]]-4294967296 # encoding: [0xc4,0x0d,A,A,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-4294967296)+2, kind: FK_390_PC32DBL lrl %r0, -0x100000000 @@ -8604,6 +9210,16 @@ ltdbr %f15,%f0 ltdbr %f15,%f9 +#CHECK: ltdr %f0, %f9 # encoding: [0x22,0x09] +#CHECK: ltdr %f0, %f15 # encoding: [0x22,0x0f] +#CHECK: ltdr %f15, %f0 # encoding: [0x22,0xf0] +#CHECK: ltdr %f15, %f9 # encoding: [0x22,0xf9] + + ltdr %f0,%f9 + ltdr %f0,%f15 + ltdr %f15,%f0 + ltdr %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] @@ -8614,6 +9230,16 @@ ltebr %f15,%f0 ltebr %f15,%f9 +#CHECK: lter %f0, %f9 # encoding: [0x32,0x09] +#CHECK: lter %f0, %f15 # encoding: [0x32,0x0f] +#CHECK: lter %f15, %f0 # encoding: [0x32,0xf0] +#CHECK: lter %f15, %f9 # encoding: [0x32,0xf9] + + lter %f0,%f9 + lter %f0,%f15 + lter %f15,%f0 + lter %f15,%f9 + #CHECK: ltg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x02] #CHECK: ltg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x02] #CHECK: ltg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x02] @@ -8698,6 +9324,31 @@ ltxbr %f13,%f0 ltxbr %f13,%f9 +#CHECK: ltxr %f0, %f9 # encoding: [0xb3,0x62,0x00,0x09] +#CHECK: ltxr %f0, %f13 # encoding: [0xb3,0x62,0x00,0x0d] +#CHECK: ltxr %f13, %f0 # encoding: [0xb3,0x62,0x00,0xd0] +#CHECK: ltxr %f13, %f9 # encoding: [0xb3,0x62,0x00,0xd9] + + ltxr %f0,%f9 + ltxr %f0,%f13 + ltxr %f13,%f0 + ltxr %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] +#CHECK: lxd %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x25] +#CHECK: lxd %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x25] +#CHECK: lxd %f13, 0 # encoding: [0xed,0xd0,0x00,0x00,0x00,0x25] + + lxd %f0, 0 + lxd %f0, 4095 + lxd %f0, 0(%r1) + lxd %f0, 0(%r15) + lxd %f0, 4095(%r1,%r15) + lxd %f0, 4095(%r15,%r1) + lxd %f13, 0 + #CHECK: lxdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x05] #CHECK: lxdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x05] #CHECK: lxdb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x05] @@ -8723,6 +9374,31 @@ lxdbr %f13,%f0 lxdbr %f13,%f15 +#CHECK: lxdr %f0, %f8 # encoding: [0xb3,0x25,0x00,0x08] +#CHECK: lxdr %f0, %f13 # encoding: [0xb3,0x25,0x00,0x0d] +#CHECK: lxdr %f13, %f0 # encoding: [0xb3,0x25,0x00,0xd0] +#CHECK: lxdr %f13, %f15 # encoding: [0xb3,0x25,0x00,0xdf] + + lxdr %f0,%f8 + lxdr %f0,%f13 + lxdr %f13,%f0 + lxdr %f13,%f15 + +#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] +#CHECK: lxe %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x26] +#CHECK: lxe %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x26] +#CHECK: lxe %f13, 0 # encoding: [0xed,0xd0,0x00,0x00,0x00,0x26] + + lxe %f0, 0 + lxe %f0, 4095 + lxe %f0, 0(%r1) + lxe %f0, 0(%r15) + lxe %f0, 4095(%r1,%r15) + lxe %f0, 4095(%r15,%r1) + lxe %f13, 0 + #CHECK: lxeb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x06] #CHECK: lxeb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x06] #CHECK: lxeb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x06] @@ -8748,6 +9424,16 @@ lxebr %f13,%f0 lxebr %f13,%f15 +#CHECK: lxer %f0, %f8 # encoding: [0xb3,0x26,0x00,0x08] +#CHECK: lxer %f0, %f13 # encoding: [0xb3,0x26,0x00,0x0d] +#CHECK: lxer %f13, %f0 # encoding: [0xb3,0x26,0x00,0xd0] +#CHECK: lxer %f13, %f15 # encoding: [0xb3,0x26,0x00,0xdf] + + lxer %f0,%f8 + lxer %f0,%f13 + lxer %f13,%f0 + lxer %f13,%f15 + #CHECK: lxr %f0, %f8 # encoding: [0xb3,0x65,0x00,0x08] #CHECK: lxr %f0, %f13 # encoding: [0xb3,0x65,0x00,0x0d] #CHECK: lxr %f13, %f0 # encoding: [0xb3,0x65,0x00,0xd0] @@ -8820,6 +9506,26 @@ m %r0, 4095(%r15,%r1) m %r14, 0 +#CHECK: mad %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x3e] +#CHECK: mad %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x3e] +#CHECK: mad %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x3e] +#CHECK: mad %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x3e] +#CHECK: mad %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x3e] +#CHECK: mad %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x3e] +#CHECK: mad %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x3e] +#CHECK: mad %f15, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xf0,0x3e] +#CHECK: mad %f15, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x3e] + + mad %f0, %f0, 0 + mad %f0, %f0, 4095 + mad %f0, %f0, 0(%r1) + mad %f0, %f0, 0(%r15) + mad %f0, %f0, 4095(%r1,%r15) + mad %f0, %f0, 4095(%r15,%r1) + mad %f0, %f15, 0 + mad %f15, %f0, 0 + mad %f15, %f15, 0 + #CHECK: madb %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x1e] #CHECK: madb %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x1e] #CHECK: madb %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x1e] @@ -8854,6 +9560,40 @@ madbr %f7, %f8, %f9 madbr %f15, %f15, %f15 +#CHECK: madr %f0, %f0, %f0 # encoding: [0xb3,0x3e,0x00,0x00] +#CHECK: madr %f0, %f0, %f15 # encoding: [0xb3,0x3e,0x00,0x0f] +#CHECK: madr %f0, %f15, %f0 # encoding: [0xb3,0x3e,0x00,0xf0] +#CHECK: madr %f15, %f0, %f0 # encoding: [0xb3,0x3e,0xf0,0x00] +#CHECK: madr %f7, %f8, %f9 # encoding: [0xb3,0x3e,0x70,0x89] +#CHECK: madr %f15, %f15, %f15 # encoding: [0xb3,0x3e,0xf0,0xff] + + madr %f0, %f0, %f0 + madr %f0, %f0, %f15 + madr %f0, %f15, %f0 + madr %f15, %f0, %f0 + madr %f7, %f8, %f9 + madr %f15, %f15, %f15 + +#CHECK: mae %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x2e] +#CHECK: mae %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x2e] +#CHECK: mae %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x2e] +#CHECK: mae %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x2e] +#CHECK: mae %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x2e] +#CHECK: mae %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x2e] +#CHECK: mae %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x2e] +#CHECK: mae %f15, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xf0,0x2e] +#CHECK: mae %f15, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x2e] + + mae %f0, %f0, 0 + mae %f0, %f0, 4095 + mae %f0, %f0, 0(%r1) + mae %f0, %f0, 0(%r15) + mae %f0, %f0, 4095(%r1,%r15) + mae %f0, %f0, 4095(%r15,%r1) + mae %f0, %f15, 0 + mae %f15, %f0, 0 + mae %f15, %f15, 0 + #CHECK: maeb %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x0e] #CHECK: maeb %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x0e] #CHECK: maeb %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x0e] @@ -8888,6 +9628,122 @@ maebr %f7, %f8, %f9 maebr %f15, %f15, %f15 +#CHECK: maer %f0, %f0, %f0 # encoding: [0xb3,0x2e,0x00,0x00] +#CHECK: maer %f0, %f0, %f15 # encoding: [0xb3,0x2e,0x00,0x0f] +#CHECK: maer %f0, %f15, %f0 # encoding: [0xb3,0x2e,0x00,0xf0] +#CHECK: maer %f15, %f0, %f0 # encoding: [0xb3,0x2e,0xf0,0x00] +#CHECK: maer %f7, %f8, %f9 # encoding: [0xb3,0x2e,0x70,0x89] +#CHECK: maer %f15, %f15, %f15 # encoding: [0xb3,0x2e,0xf0,0xff] + + maer %f0, %f0, %f0 + maer %f0, %f0, %f15 + maer %f0, %f15, %f0 + maer %f15, %f0, %f0 + maer %f7, %f8, %f9 + maer %f15, %f15, %f15 + +#CHECK: may %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x3a] +#CHECK: may %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x3a] +#CHECK: may %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x3a] +#CHECK: may %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x3a] +#CHECK: may %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x3a] +#CHECK: may %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x3a] +#CHECK: may %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x3a] +#CHECK: may %f13, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xd0,0x3a] +#CHECK: may %f13, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xd0,0x3a] + + may %f0, %f0, 0 + may %f0, %f0, 4095 + may %f0, %f0, 0(%r1) + may %f0, %f0, 0(%r15) + may %f0, %f0, 4095(%r1,%r15) + may %f0, %f0, 4095(%r15,%r1) + may %f0, %f15, 0 + may %f13, %f0, 0 + may %f13, %f15, 0 + +#CHECK: mayh %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x3c] +#CHECK: mayh %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x3c] +#CHECK: mayh %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x3c] +#CHECK: mayh %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x3c] +#CHECK: mayh %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x3c] +#CHECK: mayh %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x3c] +#CHECK: mayh %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x3c] +#CHECK: mayh %f15, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xf0,0x3c] +#CHECK: mayh %f15, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x3c] + + mayh %f0, %f0, 0 + mayh %f0, %f0, 4095 + mayh %f0, %f0, 0(%r1) + mayh %f0, %f0, 0(%r15) + mayh %f0, %f0, 4095(%r1,%r15) + mayh %f0, %f0, 4095(%r15,%r1) + mayh %f0, %f15, 0 + mayh %f15, %f0, 0 + mayh %f15, %f15, 0 + +#CHECK: mayhr %f0, %f0, %f0 # encoding: [0xb3,0x3c,0x00,0x00] +#CHECK: mayhr %f0, %f0, %f15 # encoding: [0xb3,0x3c,0x00,0x0f] +#CHECK: mayhr %f0, %f15, %f0 # encoding: [0xb3,0x3c,0x00,0xf0] +#CHECK: mayhr %f15, %f0, %f0 # encoding: [0xb3,0x3c,0xf0,0x00] +#CHECK: mayhr %f7, %f8, %f9 # encoding: [0xb3,0x3c,0x70,0x89] +#CHECK: mayhr %f15, %f15, %f15 # encoding: [0xb3,0x3c,0xf0,0xff] + + mayhr %f0, %f0, %f0 + mayhr %f0, %f0, %f15 + mayhr %f0, %f15, %f0 + mayhr %f15, %f0, %f0 + mayhr %f7, %f8, %f9 + mayhr %f15, %f15, %f15 + +#CHECK: mayl %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x38] +#CHECK: mayl %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x38] +#CHECK: mayl %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x38] +#CHECK: mayl %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x38] +#CHECK: mayl %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x38] +#CHECK: mayl %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x38] +#CHECK: mayl %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x38] +#CHECK: mayl %f15, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xf0,0x38] +#CHECK: mayl %f15, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x38] + + mayl %f0, %f0, 0 + mayl %f0, %f0, 4095 + mayl %f0, %f0, 0(%r1) + mayl %f0, %f0, 0(%r15) + mayl %f0, %f0, 4095(%r1,%r15) + mayl %f0, %f0, 4095(%r15,%r1) + mayl %f0, %f15, 0 + mayl %f15, %f0, 0 + mayl %f15, %f15, 0 + +#CHECK: maylr %f0, %f0, %f0 # encoding: [0xb3,0x38,0x00,0x00] +#CHECK: maylr %f0, %f0, %f15 # encoding: [0xb3,0x38,0x00,0x0f] +#CHECK: maylr %f0, %f15, %f0 # encoding: [0xb3,0x38,0x00,0xf0] +#CHECK: maylr %f15, %f0, %f0 # encoding: [0xb3,0x38,0xf0,0x00] +#CHECK: maylr %f7, %f8, %f9 # encoding: [0xb3,0x38,0x70,0x89] +#CHECK: maylr %f15, %f15, %f15 # encoding: [0xb3,0x38,0xf0,0xff] + + maylr %f0, %f0, %f0 + maylr %f0, %f0, %f15 + maylr %f0, %f15, %f0 + maylr %f15, %f0, %f0 + maylr %f7, %f8, %f9 + maylr %f15, %f15, %f15 + +#CHECK: mayr %f0, %f0, %f0 # encoding: [0xb3,0x3a,0x00,0x00] +#CHECK: mayr %f0, %f0, %f15 # encoding: [0xb3,0x3a,0x00,0x0f] +#CHECK: mayr %f0, %f15, %f0 # encoding: [0xb3,0x3a,0x00,0xf0] +#CHECK: mayr %f13, %f0, %f0 # encoding: [0xb3,0x3a,0xd0,0x00] +#CHECK: mayr %f5, %f8, %f9 # encoding: [0xb3,0x3a,0x50,0x89] +#CHECK: mayr %f13, %f15, %f15 # encoding: [0xb3,0x3a,0xd0,0xff] + + mayr %f0, %f0, %f0 + mayr %f0, %f0, %f15 + mayr %f0, %f15, %f0 + mayr %f13, %f0, %f0 + mayr %f5, %f8, %f9 + mayr %f13, %f15, %f15 + #CHECK: mc 0, 0 # encoding: [0xaf,0x00,0x00,0x00] #CHECK: mc 4095, 0 # encoding: [0xaf,0x00,0x0f,0xff] #CHECK: mc 0, 255 # encoding: [0xaf,0xff,0x00,0x00] @@ -8904,6 +9760,22 @@ mc 4095(%r1), 42 mc 4095(%r15), 42 +#CHECK: md %f0, 0 # encoding: [0x6c,0x00,0x00,0x00] +#CHECK: md %f0, 4095 # encoding: [0x6c,0x00,0x0f,0xff] +#CHECK: md %f0, 0(%r1) # encoding: [0x6c,0x00,0x10,0x00] +#CHECK: md %f0, 0(%r15) # encoding: [0x6c,0x00,0xf0,0x00] +#CHECK: md %f0, 4095(%r1,%r15) # encoding: [0x6c,0x01,0xff,0xff] +#CHECK: md %f0, 4095(%r15,%r1) # encoding: [0x6c,0x0f,0x1f,0xff] +#CHECK: md %f15, 0 # encoding: [0x6c,0xf0,0x00,0x00] + + md %f0, 0 + md %f0, 4095 + md %f0, 0(%r1) + md %f0, 0(%r15) + md %f0, 4095(%r1,%r15) + md %f0, 4095(%r15,%r1) + md %f15, 0 + #CHECK: mdb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x1c] #CHECK: mdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x1c] #CHECK: mdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x1c] @@ -8930,6 +9802,22 @@ mdbr %f7, %f8 mdbr %f15, %f0 +#CHECK: mde %f0, 0 # encoding: [0x7c,0x00,0x00,0x00] +#CHECK: mde %f0, 4095 # encoding: [0x7c,0x00,0x0f,0xff] +#CHECK: mde %f0, 0(%r1) # encoding: [0x7c,0x00,0x10,0x00] +#CHECK: mde %f0, 0(%r15) # encoding: [0x7c,0x00,0xf0,0x00] +#CHECK: mde %f0, 4095(%r1,%r15) # encoding: [0x7c,0x01,0xff,0xff] +#CHECK: mde %f0, 4095(%r15,%r1) # encoding: [0x7c,0x0f,0x1f,0xff] +#CHECK: mde %f15, 0 # encoding: [0x7c,0xf0,0x00,0x00] + + mde %f0, 0 + mde %f0, 4095 + mde %f0, 0(%r1) + mde %f0, 0(%r15) + mde %f0, 4095(%r1,%r15) + mde %f0, 4095(%r15,%r1) + mde %f15, 0 + #CHECK: mdeb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x0c] #CHECK: mdeb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x0c] #CHECK: mdeb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x0c] @@ -8956,6 +9844,58 @@ mdebr %f7, %f8 mdebr %f15, %f0 +#CHECK: mder %f0, %f0 # encoding: [0x3c,0x00] +#CHECK: mder %f0, %f15 # encoding: [0x3c,0x0f] +#CHECK: mder %f7, %f8 # encoding: [0x3c,0x78] +#CHECK: mder %f15, %f0 # encoding: [0x3c,0xf0] + + mder %f0, %f0 + mder %f0, %f15 + mder %f7, %f8 + mder %f15, %f0 + +#CHECK: mdr %f0, %f0 # encoding: [0x2c,0x00] +#CHECK: mdr %f0, %f15 # encoding: [0x2c,0x0f] +#CHECK: mdr %f7, %f8 # encoding: [0x2c,0x78] +#CHECK: mdr %f15, %f0 # encoding: [0x2c,0xf0] + + mdr %f0, %f0 + mdr %f0, %f15 + mdr %f7, %f8 + mdr %f15, %f0 + +#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] +#CHECK: me %f0, 0(%r15) # encoding: [0x7c,0x00,0xf0,0x00] +#CHECK: me %f0, 4095(%r1,%r15) # encoding: [0x7c,0x01,0xff,0xff] +#CHECK: me %f0, 4095(%r15,%r1) # encoding: [0x7c,0x0f,0x1f,0xff] +#CHECK: me %f15, 0 # encoding: [0x7c,0xf0,0x00,0x00] + + me %f0, 0 + me %f0, 4095 + me %f0, 0(%r1) + me %f0, 0(%r15) + me %f0, 4095(%r1,%r15) + me %f0, 4095(%r15,%r1) + me %f15, 0 + +#CHECK: mee %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x37] +#CHECK: mee %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x37] +#CHECK: mee %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x37] +#CHECK: mee %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x37] +#CHECK: mee %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x37] +#CHECK: mee %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x37] +#CHECK: mee %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x37] + + mee %f0, 0 + mee %f0, 4095 + mee %f0, 0(%r1) + mee %f0, 0(%r15) + mee %f0, 4095(%r1,%r15) + mee %f0, 4095(%r15,%r1) + mee %f15, 0 + #CHECK: meeb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x17] #CHECK: meeb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x17] #CHECK: meeb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x17] @@ -8982,6 +9922,26 @@ meebr %f7, %f8 meebr %f15, %f0 +#CHECK: meer %f0, %f0 # encoding: [0xb3,0x37,0x00,0x00] +#CHECK: meer %f0, %f15 # encoding: [0xb3,0x37,0x00,0x0f] +#CHECK: meer %f7, %f8 # encoding: [0xb3,0x37,0x00,0x78] +#CHECK: meer %f15, %f0 # encoding: [0xb3,0x37,0x00,0xf0] + + meer %f0, %f0 + meer %f0, %f15 + meer %f7, %f8 + meer %f15, %f0 + +#CHECK: mer %f0, %f0 # encoding: [0x3c,0x00] +#CHECK: mer %f0, %f15 # encoding: [0x3c,0x0f] +#CHECK: mer %f7, %f8 # encoding: [0x3c,0x78] +#CHECK: mer %f15, %f0 # encoding: [0x3c,0xf0] + + mer %f0, %f0 + mer %f0, %f15 + mer %f7, %f8 + mer %f15, %f0 + #CHECK: mfy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x5c] #CHECK: mfy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x5c] #CHECK: mfy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x5c] @@ -9190,6 +10150,26 @@ ms %r0, 4095(%r15,%r1) ms %r15, 0 +#CHECK: msd %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x3f] +#CHECK: msd %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x3f] +#CHECK: msd %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x3f] +#CHECK: msd %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x3f] +#CHECK: msd %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x3f] +#CHECK: msd %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x3f] +#CHECK: msd %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x3f] +#CHECK: msd %f15, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xf0,0x3f] +#CHECK: msd %f15, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x3f] + + msd %f0, %f0, 0 + msd %f0, %f0, 4095 + msd %f0, %f0, 0(%r1) + msd %f0, %f0, 0(%r15) + msd %f0, %f0, 4095(%r1,%r15) + msd %f0, %f0, 4095(%r15,%r1) + msd %f0, %f15, 0 + msd %f15, %f0, 0 + msd %f15, %f15, 0 + #CHECK: msdb %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x1f] #CHECK: msdb %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x1f] #CHECK: msdb %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x1f] @@ -9224,6 +10204,40 @@ msdbr %f7, %f8, %f9 msdbr %f15, %f15, %f15 +#CHECK: msdr %f0, %f0, %f0 # encoding: [0xb3,0x3f,0x00,0x00] +#CHECK: msdr %f0, %f0, %f15 # encoding: [0xb3,0x3f,0x00,0x0f] +#CHECK: msdr %f0, %f15, %f0 # encoding: [0xb3,0x3f,0x00,0xf0] +#CHECK: msdr %f15, %f0, %f0 # encoding: [0xb3,0x3f,0xf0,0x00] +#CHECK: msdr %f7, %f8, %f9 # encoding: [0xb3,0x3f,0x70,0x89] +#CHECK: msdr %f15, %f15, %f15 # encoding: [0xb3,0x3f,0xf0,0xff] + + msdr %f0, %f0, %f0 + msdr %f0, %f0, %f15 + msdr %f0, %f15, %f0 + msdr %f15, %f0, %f0 + msdr %f7, %f8, %f9 + msdr %f15, %f15, %f15 + +#CHECK: mse %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x2f] +#CHECK: mse %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x2f] +#CHECK: mse %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x2f] +#CHECK: mse %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x2f] +#CHECK: mse %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x2f] +#CHECK: mse %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x2f] +#CHECK: mse %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x2f] +#CHECK: mse %f15, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xf0,0x2f] +#CHECK: mse %f15, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x2f] + + mse %f0, %f0, 0 + mse %f0, %f0, 4095 + mse %f0, %f0, 0(%r1) + mse %f0, %f0, 0(%r15) + mse %f0, %f0, 4095(%r1,%r15) + mse %f0, %f0, 4095(%r15,%r1) + mse %f0, %f15, 0 + mse %f15, %f0, 0 + mse %f15, %f15, 0 + #CHECK: mseb %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x0f] #CHECK: mseb %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x0f] #CHECK: mseb %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x0f] @@ -9258,6 +10272,20 @@ msebr %f7, %f8, %f9 msebr %f15, %f15, %f15 +#CHECK: mser %f0, %f0, %f0 # encoding: [0xb3,0x2f,0x00,0x00] +#CHECK: mser %f0, %f0, %f15 # encoding: [0xb3,0x2f,0x00,0x0f] +#CHECK: mser %f0, %f15, %f0 # encoding: [0xb3,0x2f,0x00,0xf0] +#CHECK: mser %f15, %f0, %f0 # encoding: [0xb3,0x2f,0xf0,0x00] +#CHECK: mser %f7, %f8, %f9 # encoding: [0xb3,0x2f,0x70,0x89] +#CHECK: mser %f15, %f15, %f15 # encoding: [0xb3,0x2f,0xf0,0xff] + + mser %f0, %f0, %f0 + mser %f0, %f0, %f15 + mser %f0, %f15, %f0 + mser %f15, %f0, %f0 + mser %f7, %f8, %f9 + mser %f15, %f15, %f15 + #CHECK: msfi %r0, -2147483648 # encoding: [0xc2,0x01,0x80,0x00,0x00,0x00] #CHECK: msfi %r0, -1 # encoding: [0xc2,0x01,0xff,0xff,0xff,0xff] #CHECK: msfi %r0, 0 # encoding: [0xc2,0x01,0x00,0x00,0x00,0x00] @@ -9722,6 +10750,22 @@ mxbr %f8, %f5 mxbr %f13, %f13 +#CHECK: mxd %f0, 0 # encoding: [0x67,0x00,0x00,0x00] +#CHECK: mxd %f0, 4095 # encoding: [0x67,0x00,0x0f,0xff] +#CHECK: mxd %f0, 0(%r1) # encoding: [0x67,0x00,0x10,0x00] +#CHECK: mxd %f0, 0(%r15) # encoding: [0x67,0x00,0xf0,0x00] +#CHECK: mxd %f0, 4095(%r1,%r15) # encoding: [0x67,0x01,0xff,0xff] +#CHECK: mxd %f0, 4095(%r15,%r1) # encoding: [0x67,0x0f,0x1f,0xff] +#CHECK: mxd %f13, 0 # encoding: [0x67,0xd0,0x00,0x00] + + mxd %f0, 0 + mxd %f0, 4095 + mxd %f0, 0(%r1) + mxd %f0, 0(%r15) + mxd %f0, 4095(%r1,%r15) + mxd %f0, 4095(%r15,%r1) + mxd %f13, 0 + #CHECK: mxdb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x07] #CHECK: mxdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x07] #CHECK: mxdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x07] @@ -9748,6 +10792,128 @@ mxdbr %f8, %f8 mxdbr %f13, %f0 +#CHECK: mxdr %f0, %f0 # encoding: [0x27,0x00] +#CHECK: mxdr %f0, %f15 # encoding: [0x27,0x0f] +#CHECK: mxdr %f8, %f8 # encoding: [0x27,0x88] +#CHECK: mxdr %f13, %f0 # encoding: [0x27,0xd0] + + mxdr %f0, %f0 + mxdr %f0, %f15 + mxdr %f8, %f8 + mxdr %f13, %f0 + +#CHECK: mxr %f0, %f0 # encoding: [0x26,0x00] +#CHECK: mxr %f0, %f13 # encoding: [0x26,0x0d] +#CHECK: mxr %f8, %f5 # encoding: [0x26,0x85] +#CHECK: mxr %f13, %f13 # encoding: [0x26,0xdd] + + mxr %f0, %f0 + mxr %f0, %f13 + mxr %f8, %f5 + mxr %f13, %f13 + +#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] +#CHECK: my %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x3b] +#CHECK: my %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x3b] +#CHECK: my %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x3b] +#CHECK: my %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x3b] +#CHECK: my %f13, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xd0,0x3b] +#CHECK: my %f13, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xd0,0x3b] + + my %f0, %f0, 0 + my %f0, %f0, 4095 + my %f0, %f0, 0(%r1) + my %f0, %f0, 0(%r15) + my %f0, %f0, 4095(%r1,%r15) + my %f0, %f0, 4095(%r15,%r1) + my %f0, %f15, 0 + my %f13, %f0, 0 + my %f13, %f15, 0 + +#CHECK: myh %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x3d] +#CHECK: myh %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x3d] +#CHECK: myh %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x3d] +#CHECK: myh %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x3d] +#CHECK: myh %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x3d] +#CHECK: myh %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x3d] +#CHECK: myh %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x3d] +#CHECK: myh %f15, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xf0,0x3d] +#CHECK: myh %f15, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x3d] + + myh %f0, %f0, 0 + myh %f0, %f0, 4095 + myh %f0, %f0, 0(%r1) + myh %f0, %f0, 0(%r15) + myh %f0, %f0, 4095(%r1,%r15) + myh %f0, %f0, 4095(%r15,%r1) + myh %f0, %f15, 0 + myh %f15, %f0, 0 + myh %f15, %f15, 0 + +#CHECK: myhr %f0, %f0, %f0 # encoding: [0xb3,0x3d,0x00,0x00] +#CHECK: myhr %f0, %f0, %f15 # encoding: [0xb3,0x3d,0x00,0x0f] +#CHECK: myhr %f0, %f15, %f0 # encoding: [0xb3,0x3d,0x00,0xf0] +#CHECK: myhr %f15, %f0, %f0 # encoding: [0xb3,0x3d,0xf0,0x00] +#CHECK: myhr %f7, %f8, %f9 # encoding: [0xb3,0x3d,0x70,0x89] +#CHECK: myhr %f15, %f15, %f15 # encoding: [0xb3,0x3d,0xf0,0xff] + + myhr %f0, %f0, %f0 + myhr %f0, %f0, %f15 + myhr %f0, %f15, %f0 + myhr %f15, %f0, %f0 + myhr %f7, %f8, %f9 + myhr %f15, %f15, %f15 + +#CHECK: myl %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x39] +#CHECK: myl %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x39] +#CHECK: myl %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x39] +#CHECK: myl %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x39] +#CHECK: myl %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x39] +#CHECK: myl %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x39] +#CHECK: myl %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x39] +#CHECK: myl %f15, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xf0,0x39] +#CHECK: myl %f15, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x39] + + myl %f0, %f0, 0 + myl %f0, %f0, 4095 + myl %f0, %f0, 0(%r1) + myl %f0, %f0, 0(%r15) + myl %f0, %f0, 4095(%r1,%r15) + myl %f0, %f0, 4095(%r15,%r1) + myl %f0, %f15, 0 + myl %f15, %f0, 0 + myl %f15, %f15, 0 + +#CHECK: mylr %f0, %f0, %f0 # encoding: [0xb3,0x39,0x00,0x00] +#CHECK: mylr %f0, %f0, %f15 # encoding: [0xb3,0x39,0x00,0x0f] +#CHECK: mylr %f0, %f15, %f0 # encoding: [0xb3,0x39,0x00,0xf0] +#CHECK: mylr %f15, %f0, %f0 # encoding: [0xb3,0x39,0xf0,0x00] +#CHECK: mylr %f7, %f8, %f9 # encoding: [0xb3,0x39,0x70,0x89] +#CHECK: mylr %f15, %f15, %f15 # encoding: [0xb3,0x39,0xf0,0xff] + + mylr %f0, %f0, %f0 + mylr %f0, %f0, %f15 + mylr %f0, %f15, %f0 + mylr %f15, %f0, %f0 + mylr %f7, %f8, %f9 + mylr %f15, %f15, %f15 + +#CHECK: myr %f0, %f0, %f0 # encoding: [0xb3,0x3b,0x00,0x00] +#CHECK: myr %f0, %f0, %f15 # encoding: [0xb3,0x3b,0x00,0x0f] +#CHECK: myr %f0, %f15, %f0 # encoding: [0xb3,0x3b,0x00,0xf0] +#CHECK: myr %f13, %f0, %f0 # encoding: [0xb3,0x3b,0xd0,0x00] +#CHECK: myr %f5, %f8, %f9 # encoding: [0xb3,0x3b,0x50,0x89] +#CHECK: myr %f13, %f15, %f15 # encoding: [0xb3,0x3b,0xd0,0xff] + + myr %f0, %f0, %f0 + myr %f0, %f0, %f15 + myr %f0, %f15, %f0 + myr %f13, %f0, %f0 + myr %f5, %f8, %f9 + myr %f13, %f15, %f15 + #CHECK: n %r0, 0 # encoding: [0x54,0x00,0x00,0x00] #CHECK: n %r0, 4095 # encoding: [0x54,0x00,0x0f,0xff] #CHECK: n %r0, 0(%r1) # encoding: [0x54,0x00,0x10,0x00] @@ -10464,6 +11630,22 @@ sar %a7, %r8 sar %a15, %r15 +#CHECK: sd %f0, 0 # encoding: [0x6b,0x00,0x00,0x00] +#CHECK: sd %f0, 4095 # encoding: [0x6b,0x00,0x0f,0xff] +#CHECK: sd %f0, 0(%r1) # encoding: [0x6b,0x00,0x10,0x00] +#CHECK: sd %f0, 0(%r15) # encoding: [0x6b,0x00,0xf0,0x00] +#CHECK: sd %f0, 4095(%r1,%r15) # encoding: [0x6b,0x01,0xff,0xff] +#CHECK: sd %f0, 4095(%r15,%r1) # encoding: [0x6b,0x0f,0x1f,0xff] +#CHECK: sd %f15, 0 # encoding: [0x6b,0xf0,0x00,0x00] + + sd %f0, 0 + sd %f0, 4095 + sd %f0, 0(%r1) + sd %f0, 0(%r15) + sd %f0, 4095(%r1,%r15) + sd %f0, 4095(%r15,%r1) + sd %f15, 0 + #CHECK: sdb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x1b] #CHECK: sdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x1b] #CHECK: sdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x1b] @@ -10490,6 +11672,32 @@ sdbr %f7, %f8 sdbr %f15, %f0 +#CHECK: sdr %f0, %f0 # encoding: [0x2b,0x00] +#CHECK: sdr %f0, %f15 # encoding: [0x2b,0x0f] +#CHECK: sdr %f7, %f8 # encoding: [0x2b,0x78] +#CHECK: sdr %f15, %f0 # encoding: [0x2b,0xf0] + + sdr %f0, %f0 + sdr %f0, %f15 + sdr %f7, %f8 + sdr %f15, %f0 + +#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] +#CHECK: se %f0, 0(%r15) # encoding: [0x7b,0x00,0xf0,0x00] +#CHECK: se %f0, 4095(%r1,%r15) # encoding: [0x7b,0x01,0xff,0xff] +#CHECK: se %f0, 4095(%r15,%r1) # encoding: [0x7b,0x0f,0x1f,0xff] +#CHECK: se %f15, 0 # encoding: [0x7b,0xf0,0x00,0x00] + + se %f0, 0 + se %f0, 4095 + se %f0, 0(%r1) + se %f0, 0(%r15) + se %f0, 4095(%r1,%r15) + se %f0, 4095(%r15,%r1) + se %f15, 0 + #CHECK: seb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x0b] #CHECK: seb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x0b] #CHECK: seb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x0b] @@ -10516,6 +11724,16 @@ sebr %f7, %f8 sebr %f15, %f0 +#CHECK: ser %f0, %f0 # encoding: [0x3b,0x00] +#CHECK: ser %f0, %f15 # encoding: [0x3b,0x0f] +#CHECK: ser %f7, %f8 # encoding: [0x3b,0x78] +#CHECK: ser %f15, %f0 # encoding: [0x3b,0xf0] + + ser %f0, %f0 + ser %f0, %f15 + ser %f7, %f8 + ser %f15, %f0 + #CHECK: sfasr %r0 # encoding: [0xb3,0x85,0x00,0x00] #CHECK: sfasr %r1 # encoding: [0xb3,0x85,0x00,0x10] #CHECK: sfasr %r15 # encoding: [0xb3,0x85,0x00,0xf0] @@ -10988,6 +12206,22 @@ spm %r1 spm %r15 +#CHECK: sqd %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x35] +#CHECK: sqd %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x35] +#CHECK: sqd %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x35] +#CHECK: sqd %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x35] +#CHECK: sqd %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x35] +#CHECK: sqd %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x35] +#CHECK: sqd %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x35] + + sqd %f0, 0 + sqd %f0, 4095 + sqd %f0, 0(%r1) + sqd %f0, 0(%r15) + sqd %f0, 4095(%r1,%r15) + sqd %f0, 4095(%r15,%r1) + sqd %f15, 0 + #CHECK: sqdb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x15] #CHECK: sqdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x15] #CHECK: sqdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x15] @@ -11014,6 +12248,32 @@ sqdbr %f7, %f8 sqdbr %f15, %f0 +#CHECK: sqdr %f0, %f0 # encoding: [0xb2,0x44,0x00,0x00] +#CHECK: sqdr %f0, %f15 # encoding: [0xb2,0x44,0x00,0x0f] +#CHECK: sqdr %f7, %f8 # encoding: [0xb2,0x44,0x00,0x78] +#CHECK: sqdr %f15, %f0 # encoding: [0xb2,0x44,0x00,0xf0] + + sqdr %f0, %f0 + sqdr %f0, %f15 + sqdr %f7, %f8 + sqdr %f15, %f0 + +#CHECK: sqe %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x34] +#CHECK: sqe %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x34] +#CHECK: sqe %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x34] +#CHECK: sqe %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x34] +#CHECK: sqe %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x34] +#CHECK: sqe %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x34] +#CHECK: sqe %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x34] + + sqe %f0, 0 + sqe %f0, 4095 + sqe %f0, 0(%r1) + sqe %f0, 0(%r15) + sqe %f0, 4095(%r1,%r15) + sqe %f0, 4095(%r15,%r1) + sqe %f15, 0 + #CHECK: sqeb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x14] #CHECK: sqeb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x14] #CHECK: sqeb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x14] @@ -11040,6 +12300,16 @@ sqebr %f7, %f8 sqebr %f15, %f0 +#CHECK: sqer %f0, %f0 # encoding: [0xb2,0x45,0x00,0x00] +#CHECK: sqer %f0, %f15 # encoding: [0xb2,0x45,0x00,0x0f] +#CHECK: sqer %f7, %f8 # encoding: [0xb2,0x45,0x00,0x78] +#CHECK: sqer %f15, %f0 # encoding: [0xb2,0x45,0x00,0xf0] + + sqer %f0, %f0 + sqer %f0, %f15 + sqer %f7, %f8 + sqer %f15, %f0 + #CHECK: sqxbr %f0, %f0 # encoding: [0xb3,0x16,0x00,0x00] #CHECK: sqxbr %f0, %f13 # encoding: [0xb3,0x16,0x00,0x0d] #CHECK: sqxbr %f8, %f8 # encoding: [0xb3,0x16,0x00,0x88] @@ -11050,6 +12320,16 @@ sqxbr %f8, %f8 sqxbr %f13, %f0 +#CHECK: sqxr %f0, %f0 # encoding: [0xb3,0x36,0x00,0x00] +#CHECK: sqxr %f0, %f13 # encoding: [0xb3,0x36,0x00,0x0d] +#CHECK: sqxr %f8, %f8 # encoding: [0xb3,0x36,0x00,0x88] +#CHECK: sqxr %f13, %f0 # encoding: [0xb3,0x36,0x00,0xd0] + + sqxr %f0, %f0 + sqxr %f0, %f13 + sqxr %f8, %f8 + sqxr %f13, %f0 + #CHECK: sr %r0, %r0 # encoding: [0x1b,0x00] #CHECK: sr %r0, %r15 # encoding: [0x1b,0x0f] #CHECK: sr %r15, %r0 # encoding: [0x1b,0xf0] @@ -11979,6 +13259,32 @@ sty %r0, 524287(%r15,%r1) sty %r15, 0 +#CHECK: su %f0, 0 # encoding: [0x7f,0x00,0x00,0x00] +#CHECK: su %f0, 4095 # encoding: [0x7f,0x00,0x0f,0xff] +#CHECK: su %f0, 0(%r1) # encoding: [0x7f,0x00,0x10,0x00] +#CHECK: su %f0, 0(%r15) # encoding: [0x7f,0x00,0xf0,0x00] +#CHECK: su %f0, 4095(%r1,%r15) # encoding: [0x7f,0x01,0xff,0xff] +#CHECK: su %f0, 4095(%r15,%r1) # encoding: [0x7f,0x0f,0x1f,0xff] +#CHECK: su %f15, 0 # encoding: [0x7f,0xf0,0x00,0x00] + + su %f0, 0 + su %f0, 4095 + su %f0, 0(%r1) + su %f0, 0(%r15) + su %f0, 4095(%r1,%r15) + su %f0, 4095(%r15,%r1) + su %f15, 0 + +#CHECK: sur %f0, %f0 # encoding: [0x3f,0x00] +#CHECK: sur %f0, %f15 # encoding: [0x3f,0x0f] +#CHECK: sur %f7, %f8 # encoding: [0x3f,0x78] +#CHECK: sur %f15, %f0 # encoding: [0x3f,0xf0] + + sur %f0, %f0 + sur %f0, %f15 + sur %f7, %f8 + sur %f15, %f0 + #CHECK: svc 0 # encoding: [0x0a,0x00] #CHECK: svc 3 # encoding: [0x0a,0x03] #CHECK: svc 128 # encoding: [0x0a,0x80] @@ -11989,6 +13295,32 @@ svc 128 svc 0xff +#CHECK: sw %f0, 0 # encoding: [0x6f,0x00,0x00,0x00] +#CHECK: sw %f0, 4095 # encoding: [0x6f,0x00,0x0f,0xff] +#CHECK: sw %f0, 0(%r1) # encoding: [0x6f,0x00,0x10,0x00] +#CHECK: sw %f0, 0(%r15) # encoding: [0x6f,0x00,0xf0,0x00] +#CHECK: sw %f0, 4095(%r1,%r15) # encoding: [0x6f,0x01,0xff,0xff] +#CHECK: sw %f0, 4095(%r15,%r1) # encoding: [0x6f,0x0f,0x1f,0xff] +#CHECK: sw %f15, 0 # encoding: [0x6f,0xf0,0x00,0x00] + + sw %f0, 0 + sw %f0, 4095 + sw %f0, 0(%r1) + sw %f0, 0(%r15) + sw %f0, 4095(%r1,%r15) + sw %f0, 4095(%r15,%r1) + sw %f15, 0 + +#CHECK: swr %f0, %f0 # encoding: [0x2f,0x00] +#CHECK: swr %f0, %f15 # encoding: [0x2f,0x0f] +#CHECK: swr %f7, %f8 # encoding: [0x2f,0x78] +#CHECK: swr %f15, %f0 # encoding: [0x2f,0xf0] + + swr %f0, %f0 + swr %f0, %f15 + swr %f7, %f8 + swr %f15, %f0 + #CHECK: sxbr %f0, %f0 # encoding: [0xb3,0x4b,0x00,0x00] #CHECK: sxbr %f0, %f13 # encoding: [0xb3,0x4b,0x00,0x0d] #CHECK: sxbr %f8, %f8 # encoding: [0xb3,0x4b,0x00,0x88] @@ -11999,6 +13331,16 @@ sxbr %f8, %f8 sxbr %f13, %f0 +#CHECK: sxr %f0, %f0 # encoding: [0x37,0x00] +#CHECK: sxr %f0, %f13 # encoding: [0x37,0x0d] +#CHECK: sxr %f8, %f8 # encoding: [0x37,0x88] +#CHECK: sxr %f13, %f0 # encoding: [0x37,0xd0] + + sxr %f0, %f0 + sxr %f0, %f13 + sxr %f8, %f8 + sxr %f13, %f0 + #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] @@ -12025,6 +13367,30 @@ tam +#CHECK: tbdr %f0, 0, %f0 # encoding: [0xb3,0x51,0x00,0x00] +#CHECK: tbdr %f0, 0, %f15 # encoding: [0xb3,0x51,0x00,0x0f] +#CHECK: tbdr %f0, 15, %f0 # encoding: [0xb3,0x51,0xf0,0x00] +#CHECK: tbdr %f4, 5, %f6 # encoding: [0xb3,0x51,0x50,0x46] +#CHECK: tbdr %f15, 0, %f0 # encoding: [0xb3,0x51,0x00,0xf0] + + tbdr %f0, 0, %f0 + tbdr %f0, 0, %f15 + tbdr %f0, 15, %f0 + tbdr %f4, 5, %f6 + tbdr %f15, 0, %f0 + +#CHECK: tbedr %f0, 0, %f0 # encoding: [0xb3,0x50,0x00,0x00] +#CHECK: tbedr %f0, 0, %f15 # encoding: [0xb3,0x50,0x00,0x0f] +#CHECK: tbedr %f0, 15, %f0 # encoding: [0xb3,0x50,0xf0,0x00] +#CHECK: tbedr %f4, 5, %f6 # encoding: [0xb3,0x50,0x50,0x46] +#CHECK: tbedr %f15, 0, %f0 # encoding: [0xb3,0x50,0x00,0xf0] + + tbedr %f0, 0, %f0 + tbedr %f0, 0, %f15 + tbedr %f0, 15, %f0 + tbedr %f4, 5, %f6 + tbedr %f15, 0, %f0 + #CHECK: tcdb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x11] #CHECK: tcdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x11] #CHECK: tcdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x11] @@ -12073,6 +13439,26 @@ tcxb %f0, 4095(%r15,%r1) tcxb %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] +#CHECK: thder %f15, %f9 # encoding: [0xb3,0x58,0x00,0xf9] + + thder %f0,%f9 + thder %f0,%f15 + thder %f15,%f0 + thder %f15,%f9 + +#CHECK: thdr %f0, %f9 # encoding: [0xb3,0x59,0x00,0x09] +#CHECK: thdr %f0, %f15 # encoding: [0xb3,0x59,0x00,0x0f] +#CHECK: thdr %f15, %f0 # encoding: [0xb3,0x59,0x00,0xf0] +#CHECK: thdr %f15, %f9 # encoding: [0xb3,0x59,0x00,0xf9] + + thdr %f0,%f9 + thdr %f0,%f15 + thdr %f15,%f0 + thdr %f15,%f9 + #CHECK: tm 0, 0 # encoding: [0x91,0x00,0x00,0x00] #CHECK: tm 4095, 0 # encoding: [0x91,0x00,0x0f,0xff] #CHECK: tm 0, 255 # encoding: [0x91,0xff,0x00,0x00] -- 2.7.4