[llvm] r304202 - [SystemZ] Add hexadecimal floating-point instructions

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


Author: uweigand
Date: Tue May 30 05:13:23 2017
New Revision: 304202

URL: http://llvm.org/viewvc/llvm-project?rev=304202&view=rev
Log:
[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.


Added:
    llvm/trunk/lib/Target/SystemZ/SystemZInstrHFP.td
Modified:
    llvm/trunk/lib/Target/SystemZ/SystemZ.td
    llvm/trunk/lib/Target/SystemZ/SystemZInstrFP.td
    llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td
    llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ13.td
    llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ196.td
    llvm/trunk/lib/Target/SystemZ/SystemZScheduleZEC12.td
    llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt
    llvm/trunk/test/MC/SystemZ/insn-bad.s
    llvm/trunk/test/MC/SystemZ/insn-good.s

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

Modified: llvm/trunk/lib/Target/SystemZ/SystemZInstrFP.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZInstrFP.td?rev=304202&r1=304201&r2=304202&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZInstrFP.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZInstrFP.td Tue May 30 05:13:23 2017
@@ -121,7 +121,8 @@ let canFoldAsLoad = 1, SimpleBDXLoad = 1
   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:$sr
                 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>;

Modified: llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td?rev=304202&r1=304201&r2=304202&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td Tue May 30 05:13:23 2017
@@ -2752,6 +2752,15 @@ class BinaryRRE<string mnemonic, bits<16
   let DisableEncoding = "$R1src";
 }
 
+class BinaryRRD<string mnemonic, bits<16> opcode, SDPatternOperator operator,
+                RegisterOperand cls1, RegisterOperand cls2>
+  : InstRRD<opcode, (outs cls1:$R1), (ins cls2:$R3, cls2:$R2),
+            mnemonic#"\t$R1, $R3, $R2",
+            [(set cls1:$R1, (operator cls2:$R3, cls2:$R2))]> {
+  let OpKey = mnemonic#cls;
+  let OpType = "reg";
+}
+
 class BinaryRRFa<string mnemonic, bits<16> opcode, SDPatternOperator operator,
                  RegisterOperand cls1, RegisterOperand cls2,
                  RegisterOperand cls3>
@@ -2987,6 +2996,18 @@ class BinaryRXE<string mnemonic, bits<16
   let M3 = 0;
 }
 
+class BinaryRXF<string mnemonic, bits<16> opcode, SDPatternOperator operator,
+                RegisterOperand cls1, RegisterOperand cls2,
+                SDPatternOperator load, bits<5> bytes>
+  : InstRXF<opcode, (outs cls1:$R1), (ins cls2:$R3, bdxaddr12only:$XBD2),
+            mnemonic#"\t$R1, $R3, $XBD2",
+            [(set cls1:$R1, (operator cls2:$R3, (load bdxaddr12only:$XBD2)))]> {
+  let OpKey = mnemonic#"r"#cls;
+  let OpType = "mem";
+  let mayLoad = 1;
+  let AccessBytes = bytes;
+}
+
 class BinaryRXY<string mnemonic, bits<16> opcode, SDPatternOperator operator,
                 RegisterOperand cls, SDPatternOperator load, bits<5> bytes,
                 AddressingMode mode = bdxaddr20only>
@@ -3597,11 +3618,11 @@ class TernaryRRFe<string mnemonic, bits<
              (ins imm32zx4:$M3, cls2:$R2, imm32zx4:$M4),
              mnemonic#"\t$R1, $M3, $R2, $M4", []>;
 
-class TernaryRRD<string mnemonic, bits<16> opcode,
-                 SDPatternOperator operator, RegisterOperand cls>
-  : InstRRD<opcode, (outs cls:$R1), (ins cls:$R1src, cls:$R3, cls:$R2),
+class TernaryRRD<string mnemonic, bits<16> opcode, SDPatternOperator operator,
+                 RegisterOperand cls1, RegisterOperand cls2>
+  : InstRRD<opcode, (outs cls1:$R1), (ins cls2:$R1src, cls2:$R3, cls2:$R2),
             mnemonic#"\t$R1, $R3, $R2",
-            [(set cls:$R1, (operator cls:$R1src, cls:$R3, cls:$R2))]> {
+            [(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<string
 }
 
 class TernaryRXF<string mnemonic, bits<16> opcode, SDPatternOperator operator,
-                 RegisterOperand cls, SDPatternOperator load, bits<5> bytes>
-  : InstRXF<opcode, (outs cls:$R1),
-            (ins cls:$R1src, cls:$R3, bdxaddr12only:$XBD2),
+                 RegisterOperand cls1, RegisterOperand cls2,
+                 SDPatternOperator load, bits<5> bytes>
+  : InstRXF<opcode, (outs cls1:$R1),
+            (ins cls2:$R1src, cls2:$R3, bdxaddr12only:$XBD2),
             mnemonic#"\t$R1, $R3, $XBD2",
-            [(set cls:$R1, (operator cls:$R1src, cls:$R3,
-                                     (load bdxaddr12only:$XBD2)))]> {
+            [(set cls1:$R1, (operator cls2:$R1src, cls2:$R3,
+                                      (load bdxaddr12only:$XBD2)))]> {
   let OpKey = mnemonic#"r"#cls;
   let OpType = "mem";
   let Constraints = "$R1 = $R1src";

Added: llvm/trunk/lib/Target/SystemZ/SystemZInstrHFP.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZInstrHFP.td?rev=304202&view=auto
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZInstrHFP.td (added)
+++ llvm/trunk/lib/Target/SystemZ/SystemZInstrHFP.td Tue May 30 05:13:23 2017
@@ -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>;
+}
+

Modified: llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ13.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ13.td?rev=304202&r1=304201&r2=304202&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ13.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ13.td Tue May 30 05:13:23 2017
@@ -908,6 +908,114 @@ def : InstRW<[FXa, Lat30, GroupAlone], (
 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 --------------------------------- //
 
 //===----------------------------------------------------------------------===//

Modified: llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ196.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ196.td?rev=304202&r1=304201&r2=304202&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ196.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZScheduleZ196.td Tue May 30 05:13:23 2017
@@ -839,5 +839,112 @@ def : InstRW<[FXU, Lat30, GroupAlone], (
 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$")>;
+
 }
 

Modified: llvm/trunk/lib/Target/SystemZ/SystemZScheduleZEC12.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZScheduleZEC12.td?rev=304202&r1=304201&r2=304202&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZScheduleZEC12.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZScheduleZEC12.td Tue May 30 05:13:23 2017
@@ -877,5 +877,112 @@ def : InstRW<[FXU, Lat30, GroupAlone], (
 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$")>;
+
 }
 

Modified: llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt?rev=304202&r1=304201&r2=304202&view=diff
==============================================================================
--- llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt (original)
+++ llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt Tue May 30 05:13:23 2017
@@ -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
 

Modified: llvm/trunk/test/MC/SystemZ/insn-bad.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/SystemZ/insn-bad.s?rev=304202&r1=304201&r2=304202&view=diff
==============================================================================
--- llvm/trunk/test/MC/SystemZ/insn-bad.s (original)
+++ llvm/trunk/test/MC/SystemZ/insn-bad.s Tue May 30 05:13:23 2017
@@ -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

Modified: llvm/trunk/test/MC/SystemZ/insn-good.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/SystemZ/insn-good.s?rev=304202&r1=304201&r2=304202&view=diff
==============================================================================
--- llvm/trunk/test/MC/SystemZ/insn-good.s (original)
+++ llvm/trunk/test/MC/SystemZ/insn-good.s Tue May 30 05:13:23 2017
@@ -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]




More information about the llvm-commits mailing list