[SystemZ] Add hexadecimal floating-point instructions
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Tue, 30 May 2017 10:13:23 +0000 (10:13 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Tue, 30 May 2017 10:13:23 +0000 (10:13 +0000)
This adds assembler / disassembler support for the hexadecimal
floating-point instructions.  Since the Linux ABI does not use
any hex float data types, these are not useful for codegen.

llvm-svn: 304202

llvm/lib/Target/SystemZ/SystemZ.td
llvm/lib/Target/SystemZ/SystemZInstrFP.td
llvm/lib/Target/SystemZ/SystemZInstrFormats.td
llvm/lib/Target/SystemZ/SystemZInstrHFP.td [new file with mode: 0644]
llvm/lib/Target/SystemZ/SystemZScheduleZ13.td
llvm/lib/Target/SystemZ/SystemZScheduleZ196.td
llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td
llvm/test/MC/Disassembler/SystemZ/insns.txt
llvm/test/MC/SystemZ/insn-bad.s
llvm/test/MC/SystemZ/insn-good.s

index 6bdfd4d..18cf5d3 100644 (file)
@@ -54,6 +54,7 @@ include "SystemZInstrFormats.td"
 include "SystemZInstrInfo.td"
 include "SystemZInstrVector.td"
 include "SystemZInstrFP.td"
+include "SystemZInstrHFP.td"
 
 def SystemZInstrInfo : InstrInfo {}
 
index 364b81f..10172bd 100644 (file)
@@ -121,7 +121,8 @@ let canFoldAsLoad = 1, SimpleBDXLoad = 1 in {
   defm LD : UnaryRXPair<"ld", 0x68, 0xED65, load, FP64, 8>;
 
   // For z13 we prefer LDE over LE to avoid partial register dependencies.
-  def LDE32 : UnaryRXE<"lde", 0xED24, null_frag, FP32, 4>;
+  let isCodeGenOnly = 1 in
+    def LDE32 : UnaryRXE<"lde", 0xED24, null_frag, FP32, 4>;
 
   // These instructions are split after register allocation, so we don't
   // want a custom inserter.
@@ -437,18 +438,18 @@ def : Pat<(fmul (f128 (fpextend FP64:$src1)),
                 bdxaddr12only:$addr)>;
 
 // Fused multiply-add.
-def MAEBR : TernaryRRD<"maebr", 0xB30E, z_fma, FP32>;
-def MADBR : TernaryRRD<"madbr", 0xB31E, z_fma, FP64>;
+def MAEBR : TernaryRRD<"maebr", 0xB30E, z_fma, FP32, FP32>;
+def MADBR : TernaryRRD<"madbr", 0xB31E, z_fma, FP64, FP64>;
 
-def MAEB : TernaryRXF<"maeb", 0xED0E, z_fma, FP32, load, 4>;
-def MADB : TernaryRXF<"madb", 0xED1E, z_fma, FP64, load, 8>;
+def MAEB : TernaryRXF<"maeb", 0xED0E, z_fma, FP32, FP32, load, 4>;
+def MADB : TernaryRXF<"madb", 0xED1E, z_fma, FP64, FP64, load, 8>;
 
 // Fused multiply-subtract.
-def MSEBR : TernaryRRD<"msebr", 0xB30F, z_fms, FP32>;
-def MSDBR : TernaryRRD<"msdbr", 0xB31F, z_fms, FP64>;
+def MSEBR : TernaryRRD<"msebr", 0xB30F, z_fms, FP32, FP32>;
+def MSDBR : TernaryRRD<"msdbr", 0xB31F, z_fms, FP64, FP64>;
 
-def MSEB : TernaryRXF<"mseb", 0xED0F, z_fms, FP32, load, 4>;
-def MSDB : TernaryRXF<"msdb", 0xED1F, z_fms, FP64, load, 8>;
+def MSEB : TernaryRXF<"mseb", 0xED0F, z_fms, FP32, FP32, load, 4>;
+def MSDB : TernaryRXF<"msdb", 0xED1F, z_fms, FP64, FP64, load, 8>;
 
 // Division.
 def DEBR : BinaryRRE<"debr", 0xB30D, fdiv, FP32,  FP32>;
index a37da28..ddef284 100644 (file)
@@ -2752,6 +2752,15 @@ class BinaryRRE<string mnemonic, bits<16> opcode, SDPatternOperator operator,
   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> opcode, SDPatternOperator operator,
   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<16> opcode, RegisterOperand cls1,
              (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 mnemonic, bits<16> opcode,
 }
 
 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";
diff --git a/llvm/lib/Target/SystemZ/SystemZInstrHFP.td b/llvm/lib/Target/SystemZ/SystemZInstrHFP.td
new file mode 100644 (file)
index 0000000..6d5b4b9
--- /dev/null
@@ -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>;
+}
+
index 612c3b6..0a89ae3 100644 (file)
@@ -908,6 +908,114 @@ def : InstRW<[FXa, Lat30, GroupAlone], (instregex "SFASR$")>;
 def : InstRW<[FXa, LSU, Lat30, GroupAlone], (instregex "LFAS$")>;
 def : InstRW<[FXb, Lat3, GroupAlone], (instregex "SRNM(B|T)?$")>;
 
+
+// --------------------- Hexadecimal floating point ------------------------- //
+
+//===----------------------------------------------------------------------===//
+// HFP: Move instructions
+//===----------------------------------------------------------------------===//
+
+// Load and Test
+def : InstRW<[VecXsPm, Lat4], (instregex "LT(D|E)R$")>;
+def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "LTXR$")>;
+
+//===----------------------------------------------------------------------===//
+// HFP: Conversion instructions
+//===----------------------------------------------------------------------===//
+
+// Load rounded
+def : InstRW<[VecBF], (instregex "(LEDR|LRER)$")>;
+def : InstRW<[VecBF], (instregex "LEXR$")>;
+def : InstRW<[VecDF2, VecDF2], (instregex "(LDXR|LRDR)$")>;
+
+// Load lengthened
+def : InstRW<[LSU], (instregex "LDE$")>;
+def : InstRW<[FXb], (instregex "LDER$")>;
+def : InstRW<[VecBF2, VecBF2, LSU, Lat12, GroupAlone], (instregex "LX(D|E)$")>;
+def : InstRW<[VecBF2, VecBF2, GroupAlone], (instregex "LX(D|E)R$")>;
+
+// Convert from fixed
+def : InstRW<[FXb, VecBF, Lat9, BeginGroup], (instregex "CE(F|G)R$")>;
+def : InstRW<[FXb, VecBF, Lat9, BeginGroup], (instregex "CD(F|G)R$")>;
+def : InstRW<[FXb, VecDF2, VecDF2, Lat12, GroupAlone], (instregex "CX(F|G)R$")>;
+
+// Convert to fixed
+def : InstRW<[FXb, VecBF, Lat11, BeginGroup], (instregex "CF(E|D)R$")>;
+def : InstRW<[FXb, VecBF, Lat11, BeginGroup], (instregex "CG(E|D)R$")>;
+def : InstRW<[FXb, VecDF, VecDF, Lat20, BeginGroup], (instregex "C(F|G)XR$")>;
+
+// Convert BFP to HFP / HFP to BFP.
+def : InstRW<[VecBF], (instregex "THD(E)?R$")>;
+def : InstRW<[VecBF], (instregex "TB(E)?DR$")>;
+
+//===----------------------------------------------------------------------===//
+// HFP: Unary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Load Complement / Negative / Positive
+def : InstRW<[VecXsPm, Lat4], (instregex "L(C|N|P)DR$")>;
+def : InstRW<[VecXsPm, Lat4], (instregex "L(C|N|P)ER$")>;
+def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "L(C|N|P)XR$")>;
+
+// Halve
+def : InstRW<[VecBF], (instregex "H(E|D)R$")>;
+
+// Square root
+def : InstRW<[VecFPd, LSU], (instregex "SQ(E|D)$")>;
+def : InstRW<[VecFPd], (instregex "SQ(E|D)R$")>;
+def : InstRW<[VecFPd, VecFPd, GroupAlone], (instregex "SQXR$")>;
+
+// Load FP integer
+def : InstRW<[VecBF], (instregex "FIER$")>;
+def : InstRW<[VecBF], (instregex "FIDR$")>;
+def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "FIXR$")>;
+
+//===----------------------------------------------------------------------===//
+// HFP: Binary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Addition
+def : InstRW<[VecBF, LSU, Lat12], (instregex "A(E|D|U|W)$")>;
+def : InstRW<[VecBF], (instregex "A(E|D|U|W)R$")>;
+def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "AXR$")>;
+
+// Subtraction
+def : InstRW<[VecBF, LSU, Lat12], (instregex "S(E|D|U|W)$")>;
+def : InstRW<[VecBF], (instregex "S(E|D|U|W)R$")>;
+def : InstRW<[VecDF2, VecDF2, Lat11, GroupAlone], (instregex "SXR$")>;
+
+// Multiply
+def : InstRW<[VecBF, LSU, Lat12], (instregex "M(D|DE|E|EE)$")>;
+def : InstRW<[VecBF], (instregex "M(D|DE|E|EE)R$")>;
+def : InstRW<[VecBF2, VecBF2, LSU, Lat12, GroupAlone], (instregex "MXD$")>;
+def : InstRW<[VecBF2, VecBF2, GroupAlone], (instregex "MXDR$")>;
+def : InstRW<[VecDF2, VecDF2, Lat20, GroupAlone], (instregex "MXR$")>;
+def : InstRW<[VecBF2, VecBF2, LSU, Lat12, GroupAlone], (instregex "MY(H|L)?$")>;
+def : InstRW<[VecBF2, VecBF2, GroupAlone], (instregex "MY(H|L)?R$")>;
+
+// Multiply and add / subtract
+def : InstRW<[VecBF, LSU, Lat12, GroupAlone], (instregex "M(A|S)E$")>;
+def : InstRW<[VecBF, GroupAlone], (instregex "M(A|S)ER$")>;
+def : InstRW<[VecBF, LSU, Lat12, GroupAlone], (instregex "M(A|S)D$")>;
+def : InstRW<[VecBF], (instregex "M(A|S)DR$")>;
+def : InstRW<[VecBF2, VecBF2, LSU, Lat12, GroupAlone], (instregex "MAY(H|L)?$")>;
+def : InstRW<[VecBF2, VecBF2, GroupAlone], (instregex "MAY(H|L)?R$")>;
+
+// Division
+def : InstRW<[VecFPd, LSU], (instregex "D(E|D)$")>;
+def : InstRW<[VecFPd], (instregex "D(E|D)R$")>;
+def : InstRW<[VecFPd, VecFPd, GroupAlone], (instregex "DXR$")>;
+
+//===----------------------------------------------------------------------===//
+// HFP: Comparisons
+//===----------------------------------------------------------------------===//
+
+// Compare
+def : InstRW<[VecXsPm, LSU, Lat8], (instregex "C(E|D)$")>;
+def : InstRW<[VecXsPm, Lat4], (instregex "C(E|D)R$")>;
+def : InstRW<[VecDF, VecDF, Lat20, GroupAlone], (instregex "CXR$")>;
+
+
 // --------------------------------- Vector --------------------------------- //
 
 //===----------------------------------------------------------------------===//
index 670df8f..5eaa5ad 100644 (file)
@@ -839,5 +839,112 @@ def : InstRW<[FXU, Lat30, GroupAlone], (instregex "SFASR$")>;
 def : InstRW<[FXU, LSU, Lat30, GroupAlone], (instregex "LFAS$")>;
 def : InstRW<[FXU, Lat2, GroupAlone], (instregex "SRNM(B|T)?$")>;
 
+
+// --------------------- Hexadecimal floating point ------------------------- //
+
+//===----------------------------------------------------------------------===//
+// HFP: Move instructions
+//===----------------------------------------------------------------------===//
+
+// Load and Test
+def : InstRW<[FPU], (instregex "LT(D|E)R$")>;
+def : InstRW<[FPU2, FPU2, Lat9, GroupAlone], (instregex "LTXR$")>;
+
+//===----------------------------------------------------------------------===//
+// HFP: Conversion instructions
+//===----------------------------------------------------------------------===//
+
+// Load rounded
+def : InstRW<[FPU], (instregex "(LEDR|LRER)$")>;
+def : InstRW<[FPU], (instregex "LEXR$")>;
+def : InstRW<[FPU], (instregex "(LDXR|LRDR)$")>;
+
+// Load lengthened
+def : InstRW<[LSU], (instregex "LDE$")>;
+def : InstRW<[FXU], (instregex "LDER$")>;
+def : InstRW<[FPU2, FPU2, LSU, Lat15, GroupAlone], (instregex "LX(D|E)$")>;
+def : InstRW<[FPU2, FPU2, Lat10, GroupAlone], (instregex "LX(D|E)R$")>;
+
+// Convert from fixed
+def : InstRW<[FXU, FPU, Lat9, GroupAlone], (instregex "CE(F|G)R$")>;
+def : InstRW<[FXU, FPU, Lat9, GroupAlone], (instregex "CD(F|G)R$")>;
+def : InstRW<[FXU, FPU2, FPU2, Lat11, GroupAlone], (instregex "CX(F|G)R$")>;
+
+// Convert to fixed
+def : InstRW<[FXU, FPU, Lat12, GroupAlone], (instregex "CF(E|D)R$")>;
+def : InstRW<[FXU, FPU, Lat12, GroupAlone], (instregex "CG(E|D)R$")>;
+def : InstRW<[FXU, FPU, FPU, Lat20, GroupAlone], (instregex "C(F|G)XR$")>;
+
+// Convert BFP to HFP / HFP to BFP.
+def : InstRW<[FPU], (instregex "THD(E)?R$")>;
+def : InstRW<[FPU], (instregex "TB(E)?DR$")>;
+
+//===----------------------------------------------------------------------===//
+// HFP: Unary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Load Complement / Negative / Positive
+def : InstRW<[FPU], (instregex "L(C|N|P)DR$")>;
+def : InstRW<[FPU], (instregex "L(C|N|P)ER$")>;
+def : InstRW<[FPU2, FPU2, Lat9, GroupAlone], (instregex "L(C|N|P)XR$")>;
+
+// Halve
+def : InstRW<[FPU], (instregex "H(E|D)R$")>;
+
+// Square root
+def : InstRW<[FPU, LSU, Lat30], (instregex "SQ(E|D)$")>;
+def : InstRW<[FPU, Lat30], (instregex "SQ(E|D)R$")>;
+def : InstRW<[FPU2, FPU2, Lat30, GroupAlone], (instregex "SQXR$")>;
+
+// Load FP integer
+def : InstRW<[FPU], (instregex "FIER$")>;
+def : InstRW<[FPU], (instregex "FIDR$")>;
+def : InstRW<[FPU2, FPU2, Lat15, GroupAlone], (instregex "FIXR$")>;
+
+//===----------------------------------------------------------------------===//
+// HFP: Binary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Addition
+def : InstRW<[FPU, LSU, Lat12], (instregex "A(E|D|U|W)$")>;
+def : InstRW<[FPU], (instregex "A(E|D|U|W)R$")>;
+def : InstRW<[FPU2, FPU2, Lat20, GroupAlone], (instregex "AXR$")>;
+
+// Subtraction
+def : InstRW<[FPU, LSU, Lat12], (instregex "S(E|D|U|W)$")>;
+def : InstRW<[FPU], (instregex "S(E|D|U|W)R$")>;
+def : InstRW<[FPU2, FPU2, Lat20, GroupAlone], (instregex "SXR$")>;
+
+// Multiply
+def : InstRW<[FPU, LSU, Lat12], (instregex "M(D|DE|E|EE)$")>;
+def : InstRW<[FPU], (instregex "M(D|DE|E|EE)R$")>;
+def : InstRW<[FPU2, FPU2, LSU, Lat15, GroupAlone], (instregex "MXD$")>;
+def : InstRW<[FPU2, FPU2, Lat10, GroupAlone], (instregex "MXDR$")>;
+def : InstRW<[FPU2, FPU2, Lat30, GroupAlone], (instregex "MXR$")>;
+def : InstRW<[FPU2, FPU2, LSU, Lat15, GroupAlone], (instregex "MY(H|L)?$")>;
+def : InstRW<[FPU2, FPU2, Lat10, GroupAlone], (instregex "MY(H|L)?R$")>;
+
+// Multiply and add / subtract
+def : InstRW<[FPU, LSU, Lat12, GroupAlone], (instregex "M(A|S)E$")>;
+def : InstRW<[FPU, GroupAlone], (instregex "M(A|S)ER$")>;
+def : InstRW<[FPU, LSU, Lat12, GroupAlone], (instregex "M(A|S)D$")>;
+def : InstRW<[FPU, GroupAlone], (instregex "M(A|S)DR$")>;
+def : InstRW<[FPU2, FPU2, LSU, Lat12, GroupAlone], (instregex "MAY(H|L)?$")>;
+def : InstRW<[FPU2, FPU2, GroupAlone], (instregex "MAY(H|L)?R$")>;
+
+// Division
+def : InstRW<[FPU, LSU, Lat30], (instregex "D(E|D)$")>;
+def : InstRW<[FPU, Lat30], (instregex "D(E|D)R$")>;
+def : InstRW<[FPU2, FPU2, Lat30, GroupAlone], (instregex "DXR$")>;
+
+//===----------------------------------------------------------------------===//
+// HFP: Comparisons
+//===----------------------------------------------------------------------===//
+
+// Compare
+def : InstRW<[FPU, LSU, Lat12], (instregex "C(E|D)$")>;
+def : InstRW<[FPU], (instregex "C(E|D)R$")>;
+def : InstRW<[FPU, FPU, Lat15], (instregex "CXR$")>;
+
 }
 
index 1bdb877..c016054 100644 (file)
@@ -877,5 +877,112 @@ def : InstRW<[FXU, Lat30, GroupAlone], (instregex "SFASR$")>;
 def : InstRW<[FXU, LSU, Lat30, GroupAlone], (instregex "LFAS$")>;
 def : InstRW<[FXU, Lat2, GroupAlone], (instregex "SRNM(B|T)?$")>;
 
+
+// --------------------- Hexadecimal floating point ------------------------- //
+
+//===----------------------------------------------------------------------===//
+// HFP: Move instructions
+//===----------------------------------------------------------------------===//
+
+// Load and Test
+def : InstRW<[FPU], (instregex "LT(D|E)R$")>;
+def : InstRW<[FPU2, FPU2, Lat9, GroupAlone], (instregex "LTXR$")>;
+
+//===----------------------------------------------------------------------===//
+// HFP: Conversion instructions
+//===----------------------------------------------------------------------===//
+
+// Load rounded
+def : InstRW<[FPU], (instregex "(LEDR|LRER)$")>;
+def : InstRW<[FPU], (instregex "LEXR$")>;
+def : InstRW<[FPU], (instregex "(LDXR|LRDR)$")>;
+
+// Load lengthened
+def : InstRW<[LSU], (instregex "LDE$")>;
+def : InstRW<[FXU], (instregex "LDER$")>;
+def : InstRW<[FPU2, FPU2, LSU, Lat15, GroupAlone], (instregex "LX(D|E)$")>;
+def : InstRW<[FPU2, FPU2, Lat10, GroupAlone], (instregex "LX(D|E)R$")>;
+
+// Convert from fixed
+def : InstRW<[FXU, FPU, Lat9, GroupAlone], (instregex "CE(F|G)R$")>;
+def : InstRW<[FXU, FPU, Lat9, GroupAlone], (instregex "CD(F|G)R$")>;
+def : InstRW<[FXU, FPU2, FPU2, Lat11, GroupAlone], (instregex "CX(F|G)R$")>;
+
+// Convert to fixed
+def : InstRW<[FXU, FPU, Lat12, GroupAlone], (instregex "CF(E|D)R$")>;
+def : InstRW<[FXU, FPU, Lat12, GroupAlone], (instregex "CG(E|D)R$")>;
+def : InstRW<[FXU, FPU, FPU, Lat20, GroupAlone], (instregex "C(F|G)XR$")>;
+
+// Convert BFP to HFP / HFP to BFP.
+def : InstRW<[FPU], (instregex "THD(E)?R$")>;
+def : InstRW<[FPU], (instregex "TB(E)?DR$")>;
+
+//===----------------------------------------------------------------------===//
+// HFP: Unary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Load Complement / Negative / Positive
+def : InstRW<[FPU], (instregex "L(C|N|P)DR$")>;
+def : InstRW<[FPU], (instregex "L(C|N|P)ER$")>;
+def : InstRW<[FPU2, FPU2, Lat9, GroupAlone], (instregex "L(C|N|P)XR$")>;
+
+// Halve
+def : InstRW<[FPU], (instregex "H(E|D)R$")>;
+
+// Square root
+def : InstRW<[FPU, LSU, Lat30], (instregex "SQ(E|D)$")>;
+def : InstRW<[FPU, Lat30], (instregex "SQ(E|D)R$")>;
+def : InstRW<[FPU2, FPU2, Lat30, GroupAlone], (instregex "SQXR$")>;
+
+// Load FP integer
+def : InstRW<[FPU], (instregex "FIER$")>;
+def : InstRW<[FPU], (instregex "FIDR$")>;
+def : InstRW<[FPU2, FPU2, Lat15, GroupAlone], (instregex "FIXR$")>;
+
+//===----------------------------------------------------------------------===//
+// HFP: Binary arithmetic
+//===----------------------------------------------------------------------===//
+
+// Addition
+def : InstRW<[FPU, LSU, Lat12], (instregex "A(E|D|U|W)$")>;
+def : InstRW<[FPU], (instregex "A(E|D|U|W)R$")>;
+def : InstRW<[FPU2, FPU2, Lat20, GroupAlone], (instregex "AXR$")>;
+
+// Subtraction
+def : InstRW<[FPU, LSU, Lat12], (instregex "S(E|D|U|W)$")>;
+def : InstRW<[FPU], (instregex "S(E|D|U|W)R$")>;
+def : InstRW<[FPU2, FPU2, Lat20, GroupAlone], (instregex "SXR$")>;
+
+// Multiply
+def : InstRW<[FPU, LSU, Lat12], (instregex "M(D|DE|E|EE)$")>;
+def : InstRW<[FPU], (instregex "M(D|DE|E|EE)R$")>;
+def : InstRW<[FPU2, FPU2, LSU, Lat15, GroupAlone], (instregex "MXD$")>;
+def : InstRW<[FPU2, FPU2, Lat10, GroupAlone], (instregex "MXDR$")>;
+def : InstRW<[FPU2, FPU2, Lat30, GroupAlone], (instregex "MXR$")>;
+def : InstRW<[FPU2, FPU2, LSU, Lat15, GroupAlone], (instregex "MY(H|L)?$")>;
+def : InstRW<[FPU2, FPU2, Lat10, GroupAlone], (instregex "MY(H|L)?R$")>;
+
+// Multiply and add / subtract
+def : InstRW<[FPU, LSU, Lat12, GroupAlone], (instregex "M(A|S)E$")>;
+def : InstRW<[FPU, GroupAlone], (instregex "M(A|S)ER$")>;
+def : InstRW<[FPU, LSU, Lat12, GroupAlone], (instregex "M(A|S)D$")>;
+def : InstRW<[FPU, GroupAlone], (instregex "M(A|S)DR$")>;
+def : InstRW<[FPU2, FPU2, LSU, Lat12, GroupAlone], (instregex "MAY(H|L)?$")>;
+def : InstRW<[FPU2, FPU2, GroupAlone], (instregex "MAY(H|L)?R$")>;
+
+// Division
+def : InstRW<[FPU, LSU, Lat30], (instregex "D(E|D)$")>;
+def : InstRW<[FPU, Lat30], (instregex "D(E|D)R$")>;
+def : InstRW<[FPU2, FPU2, Lat30, GroupAlone], (instregex "DXR$")>;
+
+//===----------------------------------------------------------------------===//
+// HFP: Comparisons
+//===----------------------------------------------------------------------===//
+
+// Compare
+def : InstRW<[FPU, LSU, Lat12], (instregex "C(E|D)$")>;
+def : InstRW<[FPU], (instregex "C(E|D)R$")>;
+def : InstRW<[FPU, FPU, Lat15], (instregex "CXR$")>;
+
 }
 
index 3a7bbd2..6917021 100644 (file)
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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
 
index aeef916..da9a531 100644 (file)
        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
        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
        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
        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
        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
        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
        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
        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
        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
 
        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
 
 
        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
        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
        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
        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
        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
        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
 
        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
 
        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
        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
        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
        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
 
        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
        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
        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
        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
        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
        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
        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
        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
        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
        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
        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
 
        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
        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
        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
        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
        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
        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
        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
        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
        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
index 54dd153..3e633de 100644 (file)
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
        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]
 
        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]
        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]