[clang] [llvm] [Hexagon] Add V81 support to compiler and assembler (PR #164922)

Ikhlas Ajbar via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 23 19:39:55 PDT 2025


https://github.com/iajbar created https://github.com/llvm/llvm-project/pull/164922

This patch introduces support for the Hexagon V81 architecture. It includes instruction formats, definitions, encodings, scheduling classes, and builtins/intrinsics.

>From 77b61ab69cb0753c1933c3369c34e7f66b66ed17 Mon Sep 17 00:00:00 2001
From: Ikhlas Ajbar <iajbar at quicinc.com>
Date: Wed, 15 Oct 2025 11:59:08 -0700
Subject: [PATCH] [Hexagon] Add V81 support to compiler and assembler

This patch introduces support for the Hexagon V81 architecture. It
includes instruction formats, definitions, encodings, scheduling
classes, and builtins/intrinsics.
---
 clang/include/clang/Basic/BuiltinsHexagon.td  |    6 +-
 clang/include/clang/Driver/Options.td         |    2 +
 clang/lib/Basic/Targets/Hexagon.cpp           |    5 +-
 clang/test/Driver/hexagon-toolchain-elf.c     |    7 +
 clang/test/Preprocessor/hexagon-predefines.c  |   17 +
 llvm/include/llvm/IR/IntrinsicsHexagonDep.td  |   14 +
 llvm/lib/Target/Hexagon/Hexagon.td            |   13 +
 llvm/lib/Target/Hexagon/HexagonDepArch.h      |    4 +-
 llvm/lib/Target/Hexagon/HexagonDepArch.td     |    2 +
 llvm/lib/Target/Hexagon/HexagonDepIICHVX.td   |  592 ++
 .../lib/Target/Hexagon/HexagonDepIICScalar.td |  888 ++
 .../lib/Target/Hexagon/HexagonDepInstrInfo.td |   37 +
 .../Target/Hexagon/HexagonDepMapAsm2Intrin.td |   11 +
 llvm/lib/Target/Hexagon/HexagonSchedule.td    |    1 +
 llvm/lib/Target/Hexagon/HexagonScheduleV81.td |   31 +
 llvm/lib/Target/Hexagon/HexagonSubtarget.h    |    9 +
 .../MCTargetDesc/HexagonMCELFStreamer.cpp     |    3 +
 .../MCTargetDesc/HexagonMCTargetDesc.cpp      |   43 +-
 llvm/test/MC/Hexagon/arch-support.s           |    3 +
 llvm/test/MC/Hexagon/sysregs_v81.s            |  199 +
 llvm/test/MC/Hexagon/sysregs_v81_readonly.s   |   38 +
 llvm/test/MC/Hexagon/v81.s                    | 9334 +++++++++++++++++
 llvm/test/MC/Hexagon/v81_arch.s               |   10 +
 llvm/test/MC/Hexagon/v81_hvx.s                | 3377 ++++++
 24 files changed, 14627 insertions(+), 19 deletions(-)
 create mode 100644 llvm/lib/Target/Hexagon/HexagonScheduleV81.td
 create mode 100644 llvm/test/MC/Hexagon/sysregs_v81.s
 create mode 100644 llvm/test/MC/Hexagon/sysregs_v81_readonly.s
 create mode 100644 llvm/test/MC/Hexagon/v81.s
 create mode 100644 llvm/test/MC/Hexagon/v81_arch.s
 create mode 100644 llvm/test/MC/Hexagon/v81_hvx.s

diff --git a/clang/include/clang/Basic/BuiltinsHexagon.td b/clang/include/clang/Basic/BuiltinsHexagon.td
index 0727c67346697..cf18359e7bf60 100644
--- a/clang/include/clang/Basic/BuiltinsHexagon.td
+++ b/clang/include/clang/Basic/BuiltinsHexagon.td
@@ -20,8 +20,9 @@ class V<string version, VFeatures newer> : VFeatures {
   let Features = !strconcat("v", version, "|", newer.Features);
 }
 
-let Features = "v79" in def V79 : VFeatures;
+let Features = "v81" in def V81 : VFeatures;
 
+def V79 : V<"79", V81>;
 def V75 : V<"75", V79>;
 def V73 : V<"73", V75>;
 def V71 : V<"71", V73>;
@@ -43,8 +44,9 @@ class HVXV<string version, HVXVFeatures newer> : HVXVFeatures {
   let Features = !strconcat("hvxv", version, "|", newer.Features);
 }
 
-let Features = "hvxv79" in def HVXV79 : HVXVFeatures;
+let Features = "hvxv81" in def HVXV81 : HVXVFeatures;
 
+def HVXV79 : HVXV<"79", HVXV81>;
 def HVXV75 : HVXV<"75", HVXV79>;
 def HVXV73 : HVXV<"73", HVXV75>;
 def HVXV71 : HVXV<"71", HVXV73>;
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index 0c9584f1b479f..93aeb22b18e92 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -6558,6 +6558,8 @@ def mv75 : Flag<["-"], "mv75">, Group<m_hexagon_Features_Group>,
   Alias<mcpu_EQ>, AliasArgs<["hexagonv75"]>;
 def mv79 : Flag<["-"], "mv79">, Group<m_hexagon_Features_Group>,
   Alias<mcpu_EQ>, AliasArgs<["hexagonv79"]>;
+def mv81 : Flag<["-"], "mv81">, Group<m_hexagon_Features_Group>,
+  Alias<mcpu_EQ>, AliasArgs<["hexagonv81"]>;
 def mhexagon_hvx : Flag<["-"], "mhvx">, Group<m_hexagon_Features_HVX_Group>,
   HelpText<"Enable Hexagon Vector eXtensions">;
 def mhexagon_hvx_EQ : Joined<["-"], "mhvx=">,
diff --git a/clang/lib/Basic/Targets/Hexagon.cpp b/clang/lib/Basic/Targets/Hexagon.cpp
index cea64f9860036..d2f0146575ed9 100644
--- a/clang/lib/Basic/Targets/Hexagon.cpp
+++ b/clang/lib/Basic/Targets/Hexagon.cpp
@@ -83,6 +83,9 @@ void HexagonTargetInfo::getTargetDefines(const LangOptions &Opts,
   } else if (CPU == "hexagonv79") {
     Builder.defineMacro("__HEXAGON_V79__");
     Builder.defineMacro("__HEXAGON_ARCH__", "79");
+  } else if (CPU == "hexagonv81") {
+    Builder.defineMacro("__HEXAGON_V81__");
+    Builder.defineMacro("__HEXAGON_ARCH__", "81");
   }
 
   if (hasFeature("hvx-length64b")) {
@@ -252,7 +255,7 @@ static constexpr CPUSuffix Suffixes[] = {
     {{"hexagonv68"}, {"68"}}, {{"hexagonv69"}, {"69"}},
     {{"hexagonv71"}, {"71"}}, {{"hexagonv71t"}, {"71t"}},
     {{"hexagonv73"}, {"73"}}, {{"hexagonv75"}, {"75"}},
-    {{"hexagonv79"}, {"79"}},
+    {{"hexagonv79"}, {"79"}}, {{"hexagonv81"}, {"81"}}
 };
 
 std::optional<unsigned> HexagonTargetInfo::getHexagonCPURev(StringRef Name) {
diff --git a/clang/test/Driver/hexagon-toolchain-elf.c b/clang/test/Driver/hexagon-toolchain-elf.c
index de2ebfeeda26c..bff4819488453 100644
--- a/clang/test/Driver/hexagon-toolchain-elf.c
+++ b/clang/test/Driver/hexagon-toolchain-elf.c
@@ -166,6 +166,13 @@
 // CHECK250: "-cc1" {{.*}} "-target-cpu" "hexagonv79"
 // CHECK250: hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v79/crt0
 
+// RUN: not %clang -### --target=hexagon-unknown-elf \
+// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
+// RUN:   -mcpu=hexagonv81 -fuse-ld=hexagon-link \
+// RUN:   %s 2>&1 | FileCheck -check-prefix=CHECK260 %s
+// CHECK260: "-cc1" {{.*}} "-target-cpu" "hexagonv81"
+// CHECK260: hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v81/crt0
+
 // -----------------------------------------------------------------------------
 // Test Linker related args
 // -----------------------------------------------------------------------------
diff --git a/clang/test/Preprocessor/hexagon-predefines.c b/clang/test/Preprocessor/hexagon-predefines.c
index eebf48117d80c..bdedcf45ab118 100644
--- a/clang/test/Preprocessor/hexagon-predefines.c
+++ b/clang/test/Preprocessor/hexagon-predefines.c
@@ -171,6 +171,23 @@
 // CHECK-V79HVX-128B: #define __HVX__ 1
 // CHECK-V79HVX-128B: #define __hexagon__ 1
 
+// RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv81 %s\
+// RUN: | FileCheck %s -check-prefix CHECK-V81
+// CHECK-V81: #define __HEXAGON_ARCH__ 81
+// CHECK-V81: #define __HEXAGON_PHYSICAL_SLOTS__ 4
+// CHECK-V81: #define __HEXAGON_V81__ 1
+// CHECK-V81: #define __hexagon__ 1
+
+// RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv81 \
+// RUN: -target-feature +hvxv81 -target-feature +hvx-length128b %s | FileCheck \
+// RUN: %s -check-prefix CHECK-V81HVX-128B
+// CHECK-V81HVX-128B: #define __HEXAGON_ARCH__ 81
+// CHECK-V81HVX-128B: #define __HEXAGON_V81__ 1
+// CHECK-V81HVX-128B: #define __HVX_ARCH__ 81
+// CHECK-V81HVX-128B: #define __HVX_LENGTH__ 128
+// CHECK-V81HVX-128B: #define __HVX__ 1
+// CHECK-V81HVX-128B: #define __hexagon__ 1
+
 // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv67 \
 // RUN: -target-feature +hvxv67 -target-feature +hvx-length128b %s | FileCheck \
 // RUN: %s -check-prefix CHECK-ELF
diff --git a/llvm/include/llvm/IR/IntrinsicsHexagonDep.td b/llvm/include/llvm/IR/IntrinsicsHexagonDep.td
index 0cd6008b986fd..fe95377f8e1a5 100644
--- a/llvm/include/llvm/IR/IntrinsicsHexagonDep.td
+++ b/llvm/include/llvm/IR/IntrinsicsHexagonDep.td
@@ -6832,3 +6832,17 @@ Hexagon_v32i32_v16i32v16i32_Intrinsic<"HEXAGON_V6_vsub_hf_f8">;
 
 def int_hexagon_V6_vsub_hf_f8_128B :
 Hexagon_v64i32_v32i32v32i32_Intrinsic<"HEXAGON_V6_vsub_hf_f8_128B">;
+
+// V81 HVX Instructions.
+
+def int_hexagon_V6_vsub_hf_mix :
+Hexagon_v16i32_v16i32v16i32_Intrinsic<"HEXAGON_V6_vsub_hf_mix">;
+
+def int_hexagon_V6_vsub_hf_mix_128B :
+Hexagon_v32i32_v32i32v32i32_Intrinsic<"HEXAGON_V6_vsub_hf_mix_128B">;
+
+def int_hexagon_V6_vsub_sf_mix :
+Hexagon_v16i32_v16i32v16i32_Intrinsic<"HEXAGON_V6_vsub_sf_mix">;
+
+def int_hexagon_V6_vsub_sf_mix_128B :
+Hexagon_v32i32_v32i32v32i32_Intrinsic<"HEXAGON_V6_vsub_sf_mix_128B">;
diff --git a/llvm/lib/Target/Hexagon/Hexagon.td b/llvm/lib/Target/Hexagon/Hexagon.td
index fb0928b860d05..ede8463ff644b 100644
--- a/llvm/lib/Target/Hexagon/Hexagon.td
+++ b/llvm/lib/Target/Hexagon/Hexagon.td
@@ -79,6 +79,12 @@ def ExtensionHVXV79: SubtargetFeature<"hvxv79", "HexagonHVXVersion",
        ExtensionHVXV67, ExtensionHVXV68, ExtensionHVXV69, ExtensionHVXV71,
        ExtensionHVXV73, ExtensionHVXV75]>;
 
+def ExtensionHVXV81: SubtargetFeature<"hvxv81", "HexagonHVXVersion",
+      "Hexagon::ArchEnum::V81", "Hexagon HVX instructions",
+      [ExtensionHVXV65, ExtensionHVXV66, ExtensionHVXV67,
+       ExtensionHVXV68, ExtensionHVXV69, ExtensionHVXV71,
+       ExtensionHVXV73, ExtensionHVXV75, ExtensionHVXV79]>;
+
 def ExtensionHVX64B: SubtargetFeature<"hvx-length64b", "UseHVX64BOps",
       "true", "Hexagon HVX 64B instructions", [ExtensionHVX]>;
 def ExtensionHVX128B: SubtargetFeature<"hvx-length128b", "UseHVX128BOps",
@@ -151,6 +157,8 @@ def UseHVXV75          : Predicate<"HST->useHVXV75Ops()">,
                          AssemblerPredicate<(all_of ExtensionHVXV75)>;
 def UseHVXV79          : Predicate<"HST->useHVXV79Ops()">,
                          AssemblerPredicate<(all_of ExtensionHVXV79)>;
+def UseHVXV81          : Predicate<"HST->useHVXV81Ops()">,
+                         AssemblerPredicate<(all_of ExtensionHVXV81)>;
 def UseAudio           : Predicate<"HST->useAudioOps()">,
                          AssemblerPredicate<(all_of ExtensionAudio)>;
 def UseZReg            : Predicate<"HST->useZRegOps()">,
@@ -488,6 +496,11 @@ def : Proc<"hexagonv79", HexagonModelV79,
            ArchV68, ArchV69, ArchV71, ArchV73, ArchV75, ArchV79,
            FeatureCompound, FeatureDuplex, FeatureMemNoShuf, FeatureMemops,
            FeatureNVJ, FeatureNVS, FeaturePackets, FeatureSmallData]>;
+def : Proc<"hexagonv81", HexagonModelV81,
+           [ArchV65, ArchV66, ArchV67, ArchV68, ArchV69, ArchV71, ArchV73,
+            ArchV75, ArchV79, ArchV81,
+            FeatureCompound, FeatureDuplex, FeatureMemNoShuf, FeatureMemops,
+            FeatureNVJ, FeatureNVS, FeaturePackets, FeatureSmallData]>;
 
 // Need to update the correct features for tiny core.
 // Disable NewValueJumps since the packetizer is unable to handle a packet with
diff --git a/llvm/lib/Target/Hexagon/HexagonDepArch.h b/llvm/lib/Target/Hexagon/HexagonDepArch.h
index 89845348a9e31..9bf4034e2ab34 100644
--- a/llvm/lib/Target/Hexagon/HexagonDepArch.h
+++ b/llvm/lib/Target/Hexagon/HexagonDepArch.h
@@ -29,7 +29,8 @@ enum class ArchEnum {
   V71,
   V73,
   V75,
-  V79
+  V79,
+  V81
 };
 
 inline std::optional<Hexagon::ArchEnum> getCpu(StringRef CPU) {
@@ -50,6 +51,7 @@ inline std::optional<Hexagon::ArchEnum> getCpu(StringRef CPU) {
       .Case("hexagonv73", Hexagon::ArchEnum::V73)
       .Case("hexagonv75", Hexagon::ArchEnum::V75)
       .Case("hexagonv79", Hexagon::ArchEnum::V79)
+      .Case("hexagonv81", Hexagon::ArchEnum::V81)
       .Default(std::nullopt);
 }
 } // namespace Hexagon
diff --git a/llvm/lib/Target/Hexagon/HexagonDepArch.td b/llvm/lib/Target/Hexagon/HexagonDepArch.td
index 8ec1d93f6c436..f623fd0039ebe 100644
--- a/llvm/lib/Target/Hexagon/HexagonDepArch.td
+++ b/llvm/lib/Target/Hexagon/HexagonDepArch.td
@@ -34,3 +34,5 @@ def ArchV75: SubtargetFeature<"v75", "HexagonArchVersion", "Hexagon::ArchEnum::V
 def HasV75 : Predicate<"HST->hasV75Ops()">, AssemblerPredicate<(all_of ArchV75)>;
 def ArchV79: SubtargetFeature<"v79", "HexagonArchVersion", "Hexagon::ArchEnum::V79", "Enable Hexagon V79 architecture">;
 def HasV79 : Predicate<"HST->hasV79Ops()">, AssemblerPredicate<(all_of ArchV79)>;
+def ArchV81: SubtargetFeature<"v81", "HexagonArchVersion", "Hexagon::ArchEnum::V81", "Enable Hexagon V81 architecture">;
+def HasV81 : Predicate<"HST->hasV81Ops()">, AssemblerPredicate<(all_of ArchV81)>;
diff --git a/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td b/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td
index 93696e0e3b4ea..f4e36fa7dc767 100644
--- a/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td
+++ b/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td
@@ -7222,3 +7222,595 @@ class DepHVXItinV79 {
       [Hex_FWD, Hex_FWD, HVX_FWD]>
   ];
 }
+
+class DepHVXItinV81 {
+  list<InstrItinData> DepHVXItinV81_list = [
+    InstrItinData <tc_0390c1ca, /*SLOT01,LOAD,VA,VX_DV*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 1, 2],
+      [HVX_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_04da405a, /*SLOT0123,VP_VS*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_XLSHF]>], [9, 5],
+      [HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_05ca8cfd, /*SLOT0123,VS*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_SHIFT]>], [9, 5, 5],
+      [HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_08a4f1b6, /*SLOT23,VX_DV*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 7, 5, 5],
+      [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_0afc8be9, /*SLOT23,VX_DV*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 5],
+      [HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_0b04c6c7, /*SLOT23,VX_DV*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 5, 2],
+      [HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_0ec46cf9, /*SLOT0123,VA*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 7],
+      [HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_131f1c81, /*SLOT0,NOSLOT1,STORE,VP*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [SLOT1], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_XLANE]>], [2, 1, 2, 5],
+      [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_1381a97c, /*SLOT0123,4SLOT*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_ALL]>], [],
+      []>,
+
+    InstrItinData <tc_15fdf750, /*SLOT23,VS_VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1], 0>,
+       InstrStage<1, [CVI_SHIFT, CVI_XLANE]>], [9, 7, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_16ff9ef8, /*SLOT0123,VS*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_SHIFT]>], [9, 5, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_191381c1, /*SLOT0,STORE,VA*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [3, 7, 1, 2, 7],
+      [Hex_FWD, HVX_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_1ad8a370, /*SLOT23,VX_DV*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 5, 2, 2],
+      [HVX_FWD, HVX_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_1ba8a0cd, /*SLOT01,LOAD,VA*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 3, 1, 2],
+      [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_20a4bbec, /*SLOT0,STORE*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST]>], [3, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_227864f7, /*SLOT0,STORE,VA,VX_DV*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE], 0>,
+       InstrStage<1, [CVI_MPY01]>], [3, 1, 2, 5],
+      [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_257f6f7c, /*SLOT0123,VA*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 7, 7, 7],
+      [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_26a377fe, /*SLOT23,4SLOT_MPY*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_ALL_NOMEM]>], [9, 3, 5, 2],
+      [HVX_FWD, Hex_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_2b4c548e, /*SLOT23,VX_DV*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 5, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_2c745bb8, /*SLOT0123,VP_VS*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_XLSHF]>], [9, 7, 5],
+      [HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_2d4051cd, /*SLOT23,4SLOT_MPY*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_ALL_NOMEM]>], [9, 3, 7, 5, 2],
+      [HVX_FWD, Hex_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_2e8f5f6e, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 7, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_309dbb4f, /*SLOT0123,VS*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_SHIFT]>], [9, 7, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_37820f4c, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 5, 5],
+      [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_3904b926, /*SLOT01,LOAD*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD]>], [9, 2, 1, 2],
+      [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_3aacf4a8, /*SLOT0123,VA*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 2, 7],
+      [HVX_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_3ad719fb, /*SLOT01,ZW*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_ZW]>], [3, 2, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_3c56e5ce, /*SLOT0,NOSLOT1,LOAD,VP*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [SLOT1], 0>,
+       InstrStage<1, [CVI_LD], 0>,
+       InstrStage<1, [CVI_XLANE]>], [9, 3, 1, 2],
+      [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_3c8c15d0, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 5],
+      [HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_3ce09744, /*SLOT0,STORE*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST]>], [1, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_3e2aaafc, /*SLOT0,STORE,VA*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [3, 1, 2, 7],
+      [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_447d9895, /*SLOT0,STORE,VA*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [7, 1, 2, 7],
+      [HVX_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_453fe68d, /*SLOT01,LOAD,VA*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 3, 2, 1, 2],
+      [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_46d6c3e0, /*SLOT0123,VP*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_XLANE]>], [9, 5, 5],
+      [HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_4942646a, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 5, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_51d0ecc3, /*SLOT0123,VS*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_SHIFT]>], [9, 5],
+      [HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_52447ecc, /*SLOT01,LOAD*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD]>], [9, 1, 2],
+      [HVX_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_531b383c, /*SLOT0123*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [9, 5, 5],
+      [HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_540c3da3, /*SLOT0,VA*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [4, 7, 1],
+      [Hex_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_54a0dc47, /*SLOT0,STORE,VA*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [3, 2, 1, 2, 7],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_561aaa58, /*SLOT0123,VP_VS*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_XLSHF]>], [9, 9, 5, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_56c4f9fe, /*SLOT0123,VA*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 7, 7],
+      [HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_56e64202, /*SLOT0123,VP*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_XLANE]>], [9, 5, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_58d21193, /*SLOT0,STORE,VA_DV*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [7, 1, 2, 7, 7],
+      [HVX_FWD, Hex_FWD, Hex_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_5bf8afbb, /*SLOT0123,VP*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_XLANE]>], [9, 2],
+      [HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_5cdf8c84, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7],
+      [HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_61bf7c03, /*SLOT23,4SLOT_MPY*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_ALL_NOMEM]>], [9, 5, 2],
+      [HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_649072c2, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 5, 2],
+      [HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_660769f1, /*SLOT23,VX_DV*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 7, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_663c80a7, /*SLOT01,LOAD*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD]>], [9, 3, 1, 2],
+      [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_6942b6e0, /*SLOT0,STORE*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST]>], [3, 1, 2, 5],
+      [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_6e7fa133, /*SLOT0123,VP*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_XLANE]>], [9, 5, 2],
+      [HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_7095ecba, /*SLOT01,LOAD,VA_DV*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD], 0>,
+       InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [1, 2, 7],
+      [Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_71646d06, /*SLOT0123,VA_DV*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9, 7, 7, 7],
+      [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_7177e272, /*SLOT0,STORE*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST]>], [2, 1, 2, 5],
+      [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_718b5c53, /*SLOT0123,VA_DV*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9],
+      [HVX_FWD]>,
+
+    InstrItinData <tc_7273323b, /*SLOT0,STORE,VA_DV*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [1, 2, 7, 7],
+      [Hex_FWD, Hex_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_72e2b393, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_73efe966, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 5, 5],
+      [HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_7417e785, /*SLOT0123,VS*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_SHIFT]>], [9, 5, 2],
+      [HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_767c4e9d, /*SLOT0123,4SLOT*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_ALL]>], [3, 2],
+      [HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_7d68d5c2, /*SLOT01,LOAD,VA*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [7, 1, 2, 7],
+      [HVX_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_7e6a3e89, /*SLOT0123,VA*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 9, 7, 7, 7],
+      [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_8772086c, /*SLOT0123,VA*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 7, 7],
+      [HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_87adc037, /*SLOT0123,VP_VS*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_XLSHF]>], [9, 5, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_8e420e4d, /*SLOT0,STORE,VA*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [7, 1, 2, 7, 7],
+      [HVX_FWD, Hex_FWD, Hex_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_90bcc1db, /*SLOT2,VX_DV*/
+      [InstrStage<1, [SLOT2], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 5, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_933f2b39, /*SLOT23,4SLOT_MPY*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_ALL_NOMEM]>], [9, 7, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_946013d8, /*SLOT0123,VP*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_XLANE]>], [9, 5],
+      [HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_9a1cab75, /*SLOT01,LOAD,VA,VX_DV*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 3, 1, 2],
+      [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9aff7a2a, /*SLOT0,STORE,VA,VX_DV*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE], 0>,
+       InstrStage<1, [CVI_MPY01]>], [1, 2, 5],
+      [Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_9d1dc972, /*SLOT0123,VP_VS*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_XLSHF]>], [9, 7, 5, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9f363d21, /*SLOT0,STORE,VA*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [1, 2, 7, 7],
+      [Hex_FWD, Hex_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_a02a10a8, /*SLOT0,STORE,VA*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [2, 1, 2, 7],
+      [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_a0dbea28, /*SLOT01,ZW*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_ZW]>], [3, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a19b9305, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 5, 5],
+      [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_a28f32b5, /*SLOT01,LOAD,VA*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [1, 2, 7],
+      [Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_a69eeee1, /*SLOT01,LOAD,VA_DV*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD], 0>,
+       InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [7, 1, 2, 7],
+      [HVX_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_a7e6707d, /*SLOT0,NOSLOT1,LOAD,VP*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [SLOT1], 0>,
+       InstrStage<1, [CVI_LD], 0>,
+       InstrStage<1, [CVI_XLANE]>], [9, 1, 2],
+      [HVX_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_ab23f776, /*SLOT0,STORE*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST]>], [1, 2, 5],
+      [Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_abe8c3b2, /*SLOT01,LOAD,VA*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 2, 1, 2],
+      [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_ac4046bc, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 2],
+      [HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_af25efd9, /*SLOT0123,VA_DV*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9, 2, 7, 7],
+      [HVX_FWD, Hex_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_b091f1c6, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_b28e51aa, /*SLOT0123,4SLOT*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_ALL]>], [2],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_b4416217, /*SLOT0123,VA_DV*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9, 7],
+      [HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_b9db8205, /*SLOT01,LOAD*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD]>], [9, 3, 2, 1, 2],
+      [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_bb599486, /*SLOT23,VX_DV*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 7, 5, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_c0749f3c, /*SLOT01,LOAD,VA*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_LD], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 1, 2],
+      [HVX_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_c127de3a, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 5, 5],
+      [HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_c4edf264, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 2],
+      [HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_c5dba46e, /*SLOT0,STORE,VA*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [1, 2, 7],
+      [Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_c7039829, /*SLOT0,NOSLOT1,STORE,VP*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [SLOT1], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_XLANE]>], [3, 2, 1, 2, 5],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_cd94bfe0, /*SLOT23,VS_VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1], 0>,
+       InstrStage<1, [CVI_SHIFT, CVI_XLANE]>], [9, 5, 2],
+      [HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_cda936da, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 7],
+      [HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_d8287c14, /*SLOT23,VX_DV*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 5, 5],
+      [HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_db5555f3, /*SLOT0123,VA_DV*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9, 7, 7],
+      [HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_dcca380f, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 5, 2],
+      [HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_dd5b0695, /*SLOT01,ZW*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_ZW]>], [2, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_df80eeb0, /*SLOT0123,VP_VS*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_XLSHF]>], [9, 7, 5, 5],
+      [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_e2d2e9e5, /*SLOT0,NOSLOT1,STORE,VP*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [SLOT1], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_XLANE]>], [3, 1, 2, 5],
+      [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_e2fdd6e6, /*SLOT0123*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [9, 5],
+      [HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_e35c1e93, /*SLOT0123,VA*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 9, 7, 7],
+      [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_e3f68a46, /*SLOT0123,4SLOT*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_ALL]>], [3],
+      [HVX_FWD]>,
+
+    InstrItinData <tc_e675c45a, /*SLOT23,VX_DV*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 7, 5, 2, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_e699ae41, /*SLOT01,ZW*/
+      [InstrStage<1, [SLOT0, SLOT1], 0>,
+       InstrStage<1, [CVI_ZW]>], [1, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_e99d4c2e, /*SLOT0,STORE*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [CVI_ST]>], [3, 2, 1, 2, 5],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>,
+
+    InstrItinData <tc_f175e046, /*SLOT23,VX*/
+      [InstrStage<1, [SLOT2, SLOT3], 0>,
+       InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 5, 5, 2],
+      [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_f1de44ef, /*SLOT2,VX_DV*/
+      [InstrStage<1, [SLOT2], 0>,
+       InstrStage<1, [CVI_MPY01]>], [9, 5, 2],
+      [HVX_FWD, HVX_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_f21e8abb, /*SLOT0,NOSLOT1,STORE,VP*/
+      [InstrStage<1, [SLOT0], 0>,
+       InstrStage<1, [SLOT1], 0>,
+       InstrStage<1, [CVI_ST], 0>,
+       InstrStage<1, [CVI_XLANE]>], [1, 2, 5],
+      [Hex_FWD, Hex_FWD, HVX_FWD]>
+  ];
+}
\ No newline at end of file
diff --git a/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td b/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td
index 7a1ad3ea7dd12..48b665c3ee461 100644
--- a/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td
+++ b/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td
@@ -13740,3 +13740,891 @@ class DepScalarItinV79 {
       [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>
   ];
 }
+
+class DepScalarItinV81 {
+  list<InstrItinData> DepScalarItinV81_list = [
+    InstrItinData <tc_011e0e9d, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [2, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_01d44cb2, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_01e1be3b, /*tc_3x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_02fe1c65, /*tc_4x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [5, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_0655b949, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [2, 3],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_075c8dd8, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_0a195f2c, /*tc_4x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [5, 2, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_0a43be35, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [1],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_0a6c20ae, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [2, 1, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_0ba0d5da, /*tc_3stall*/
+      [InstrStage<1, [SLOT2]>], [1],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_0dfac0a7, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_0fac1eb8, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [3, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_112d30d6, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [2],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_1242dc2a, /*tc_ld*/
+      [InstrStage<1, [SLOT0]>], [2],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_1248597c, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [2, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_139ef484, /*tc_3stall*/
+      [InstrStage<1, [SLOT2]>], [1, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_14ab4f41, /*tc_newvjump*/
+      [InstrStage<1, [SLOT0]>], [3, 3, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_151bf368, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_158aa3f7, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [1, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_197dce51, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [4, 2, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_1981450d, /*tc_newvjump*/
+      [InstrStage<1, [SLOT0]>], [3],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_1c2c7a4a, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [3, 2, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_1c7522a8, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 2, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_1d41f8b7, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 4, 2, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_1fcb8495, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_1fe4ab69, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [2, 1, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_20131976, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_2237d952, /*tc_ld*/
+      [InstrStage<1, [SLOT0]>], [1, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_23708a21, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [],
+      []>,
+
+    InstrItinData <tc_2471c1c8, /*tc_ld*/
+      [InstrStage<1, [SLOT0]>], [4, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_24e109c7, /*tc_newvjump*/
+      [InstrStage<1, [SLOT0]>], [3, 3, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_24f426ab, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [2, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_27106296, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [4, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_280f7fe1, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [1, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_28e55c6f, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [1, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_2c13e7f5, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_2c3e17fc, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [1],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_2f573607, /*tc_1*/
+      [InstrStage<1, [SLOT2]>], [2, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_33e7e673, /*tc_2early*/
+      [InstrStage<1, [SLOT2]>], [],
+      []>,
+
+    InstrItinData <tc_362b0be2, /*tc_3*/
+      [InstrStage<1, [SLOT2]>], [1],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_38382228, /*tc_3x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_388f9897, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_38e0bae9, /*tc_3x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 4, 2, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_3d14a17b, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [3, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_3edca78f, /*tc_2*/
+      [InstrStage<1, [SLOT3]>], [4, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_3fbf1042, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [3],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_407e96f9, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_40d64c94, /*tc_newvjump*/
+      [InstrStage<1, [SLOT0]>], [3, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_4222e6bf, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_42ff66ba, /*tc_1*/
+      [InstrStage<1, [SLOT2]>], [2, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_442395f3, /*tc_2latepred*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [4, 3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_449acf79, /*tc_latepredstaia*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 1, 2, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_44d5a428, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [1, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_44fffc58, /*tc_3*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [2],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_45791fb8, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 2, 1, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_45f9d1be, /*tc_2early*/
+      [InstrStage<1, [SLOT2]>], [2],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_46c18ecf, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [4, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_49fdfd4b, /*tc_3stall*/
+      [InstrStage<1, [SLOT3]>], [4, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_4a55d03c, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_4abdbdc6, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [2, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_4ac61d92, /*tc_2latepred*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [4, 3, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_4bf903b0, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [3],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_503ce0f3, /*tc_3x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_512b1653, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [1, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_53c851ab, /*tc_3stall*/
+      [InstrStage<1, [SLOT2]>], [4, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_54f0cee2, /*tc_3stall*/
+      [InstrStage<1, [SLOT3]>], [1],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_5502c366, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_55255f2b, /*tc_3stall*/
+      [InstrStage<1, [SLOT3]>], [],
+      []>,
+
+    InstrItinData <tc_556f6577, /*tc_3x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_55a9a350, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [1, 2, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_55b33fda, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_56a124a7, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [2, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_57a55b54, /*tc_1*/
+      [InstrStage<1, [SLOT3]>], [2, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_5944960d, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [1, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_59a7822c, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [2, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_5a222e89, /*tc_2early*/
+      [InstrStage<1, [SLOT2]>], [1, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_5a4b5e58, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [4, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_5b347363, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_5ceb2f9e, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 1, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_5da50c4b, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_5deb5e47, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_5e4cf0e8, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_5f2afaf7, /*tc_latepredldaia*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 4, 3, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_60e324ff, /*tc_1*/
+      [InstrStage<1, [SLOT2]>], [2],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_63567288, /*tc_2latepred*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_64b00d8a, /*tc_ld*/
+      [InstrStage<1, [SLOT0]>], [4, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_651cbe02, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_65279839, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_65cbd974, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [3, 1, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_69bfb303, /*tc_3*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [2, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_6aa823ab, /*tc_3stall*/
+      [InstrStage<1, [SLOT3]>], [4, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_6ae3426b, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [4, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_6d861a95, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [2, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_6e20402a, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [2, 3],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_6f42bc60, /*tc_3stall*/
+      [InstrStage<1, [SLOT0]>], [4, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_6fb52018, /*tc_3stall*/
+      [InstrStage<1, [SLOT0]>], [1, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_6fc5dbea, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 2, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_711c805f, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [2, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_713b66bf, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_7401744f, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_7476d766, /*tc_3stall*/
+      [InstrStage<1, [SLOT3]>], [4, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_74a42bda, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [3, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_759e57be, /*tc_3stall*/
+      [InstrStage<1, [SLOT2]>], [4, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_76bb5435, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 2, 1, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_7d6a2568, /*tc_3stall*/
+      [InstrStage<1, [SLOT2]>], [1],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_77f94a5e, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [],
+      []>,
+
+    InstrItinData <tc_788b1d09, /*tc_3x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 1, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_78f87ed3, /*tc_3stall*/
+      [InstrStage<1, [SLOT0]>], [],
+      []>,
+
+    InstrItinData <tc_7af3a37e, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [1, 3],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_7b9187d3, /*tc_newvjump*/
+      [InstrStage<1, [SLOT0]>], [3, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_7c28bd7e, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [3],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_7c31e19a, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [1, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_7c6d32e4, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_7dc63b5c, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [4, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_7f58404a, /*tc_3stall*/
+      [InstrStage<1, [SLOT3]>], [],
+      []>,
+
+    InstrItinData <tc_7f7f45f5, /*tc_4x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [5, 5, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_7f8ae742, /*tc_3x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_8035e91f, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [2, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_822c3c68, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_829d8a86, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [3, 1, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_838c4d7a, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [1, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_84a7500d, /*tc_2*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_86173609, /*tc_2latepred*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [4, 3, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_887d1bb7, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [1, 2, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_8a6d0d94, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_8a825db2, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_8b5bd4f5, /*tc_2*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_8e82e8ca, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [3, 1, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_8f36a2fd, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9124c04f, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [3, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_92240447, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [3, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_934753bb, /*tc_ld*/
+      [InstrStage<1, [SLOT0]>], [3, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_937dd41c, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [],
+      []>,
+
+    InstrItinData <tc_9406230a, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [2, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_95a33176, /*tc_2*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_95f43c5e, /*tc_3*/
+      [InstrStage<1, [SLOT2]>], [1],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_96ef76ef, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [1, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_975a4e54, /*tc_newvjump*/
+      [InstrStage<1, [SLOT0]>], [3, 3, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9783714b, /*tc_4x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [5, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9b20a062, /*tc_3stall*/
+      [InstrStage<1, [SLOT2]>], [4, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9b34f5e0, /*tc_3stall*/
+      [InstrStage<1, [SLOT2]>], [],
+      []>,
+
+    InstrItinData <tc_9b3c0462, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9bcfb2ee, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9c52f549, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9e27f2f9, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [2, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9e72dc89, /*tc_4x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [5, 2, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9edb7c77, /*tc_4x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [5, 2, 1, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9edefe01, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [3, 2, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_9f6cd987, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a08b630b, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a1297125, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a154b476, /*tc_3x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a2b365d2, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [3, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a3070909, /*tc_3stall*/
+      [InstrStage<1, [SLOT0]>], [1, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a32e03e7, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 2, 1, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a38c45dc, /*tc_3x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 1, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a4e22bbd, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a4ee89db, /*tc_2early*/
+      [InstrStage<1, [SLOT0]>], [],
+      []>,
+
+    InstrItinData <tc_a724463d, /*tc_3stall*/
+      [InstrStage<1, [SLOT0]>], [4, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a7a13fac, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 2, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a7bdb22c, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_a9edeffa, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_abfd9a6d, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 1, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_ac65613f, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_addc37a8, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [3, 1, 2, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_ae5babd7, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_aee6250c, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_af6af259, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_b1ae5f67, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [1],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_b2196a3f, /*tc_3stall*/
+      [InstrStage<1, [SLOT3]>], [1, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_b3d46584, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [],
+      []>,
+
+    InstrItinData <tc_b4dc7630, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [3, 1, 2, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_b7c4062a, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 1, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_b837298f, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [],
+      []>,
+
+    InstrItinData <tc_b9bec29e, /*tc_3stall*/
+      [InstrStage<1, [SLOT2]>], [],
+      []>,
+
+    InstrItinData <tc_ba9255a6, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [2, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_bb07f2c5, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [3, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_bb78483e, /*tc_3stall*/
+      [InstrStage<1, [SLOT3]>], [4, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_bb831a7c, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_bf2ffc0f, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 1, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_c20701f0, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_c21d7447, /*tc_3x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_c57d9f39, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [3, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_c818ff7f, /*tc_newvjump*/
+      [InstrStage<1, [SLOT0]>], [],
+      []>,
+
+    InstrItinData <tc_ce59038e, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [3, 2, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_cfa0e29b, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [2, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_d03278fd, /*tc_st*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [2, 1, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_d234b61a, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [1],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_d33e5eee, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_d3632d88, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_d45ba9cd, /*tc_ld*/
+      [InstrStage<1, [SLOT0]>], [1],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_d57d649c, /*tc_3stall*/
+      [InstrStage<1, [SLOT2]>], [2],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_d61dfdc3, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_d68dca5c, /*tc_3stall*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_d71ea8fa, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [2, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_d7718fbe, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [1],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_db596beb, /*tc_3x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_db96aa6b, /*tc_st*/
+      [InstrStage<1, [SLOT0]>], [1],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_dc51281d, /*tc_3*/
+      [InstrStage<1, [SLOT2]>], [2, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_decdde8a, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [2],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_df5d53f9, /*tc_newvjump*/
+      [InstrStage<1, [SLOT0]>], [3, 2, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_e3d699e3, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_e60def48, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [2],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_e9170fb7, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 1],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_ed03645c, /*tc_1*/
+      [InstrStage<1, [SLOT2]>], [3, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_ed3f8d2a, /*tc_ld*/
+      [InstrStage<1, [SLOT0]>], [4, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_eed07714, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_eeda4109, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [3, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_ef921005, /*tc_1*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [3, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_f098b237, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_f0cdeccf, /*tc_3x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 1, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_f0e8e832, /*tc_4x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [5, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_f34c1c21, /*tc_2*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_f38f92e1, /*tc_newvjump*/
+      [InstrStage<1, [SLOT0]>], [2],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_f529831b, /*tc_latepredstaia*/
+      [InstrStage<1, [SLOT0]>], [4, 3, 1, 2, 3],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_f6e2aff9, /*tc_newvjump*/
+      [InstrStage<1, [SLOT0]>], [3, 2, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_f7569068, /*tc_4x*/
+      [InstrStage<1, [SLOT2, SLOT3]>], [5, 5, 1, 1],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_f97707c1, /*tc_1*/
+      [InstrStage<1, [SLOT2]>], [2],
+      [Hex_FWD]>,
+
+    InstrItinData <tc_f999c66e, /*tc_1*/
+      [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [2, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_fae9dfa5, /*tc_3x*/
+      [InstrStage<1, [SLOT3]>], [4, 2],
+      [Hex_FWD, Hex_FWD]>,
+
+    InstrItinData <tc_fedb7e19, /*tc_ld*/
+      [InstrStage<1, [SLOT0, SLOT1]>], [4, 2, 1, 2],
+      [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>
+  ];
+}
\ No newline at end of file
diff --git a/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td b/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
index ae96753f40cf2..f8f1c2ad07b75 100644
--- a/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
+++ b/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
@@ -39178,6 +39178,19 @@ let opNewValue = 0;
 let isCVI = 1;
 let DecoderNamespace = "EXT_mmvec";
 }
+def V6_vsub_hf_mix : HInst<
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
+"$Vd32.qf16 = vsub($Vu32.hf,$Vv32.qf16)",
+tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV81,UseHVXQFloat]> {
+let Inst{7-5} = 0b100;
+let Inst{13-13} = 0b1;
+let Inst{31-21} = 0b00011010000;
+let hasNewValue = 1;
+let opNewValue = 0;
+let isCVI = 1;
+let DecoderNamespace = "EXT_mmvec";
+}
 def V6_vsub_qf16 : HInst<
 (outs HvxVR:$Vd32),
 (ins HvxVR:$Vu32, HvxVR:$Vv32),
@@ -39269,6 +39282,19 @@ let opNewValue = 0;
 let isCVI = 1;
 let DecoderNamespace = "EXT_mmvec";
 }
+def V6_vsub_sf_mix : HInst<
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
+"$Vd32.qf32 = vsub($Vu32.sf,$Vv32.qf32)",
+tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV81,UseHVXQFloat]> {
+let Inst{7-5} = 0b000;
+let Inst{13-13} = 0b1;
+let Inst{31-21} = 0b00011010000;
+let hasNewValue = 1;
+let opNewValue = 0;
+let isCVI = 1;
+let DecoderNamespace = "EXT_mmvec";
+}
 def V6_vsub_sf_sf : HInst<
 (outs HvxVR:$Vd32),
 (ins HvxVR:$Vu32, HvxVR:$Vv32),
@@ -41116,6 +41142,17 @@ let hasNewValue = 1;
 let opNewValue = 0;
 let isSolo = 1;
 }
+def Y2_tlbpp : HInst<
+(outs IntRegs:$Rd32),
+(ins DoubleRegs:$Rss32),
+"$Rd32 = tlbp($Rss32)",
+tc_6aa823ab, TypeCR>, Enc_90cd8b, Requires<[HasV81]> {
+let Inst{13-5} = 0b000000000;
+let Inst{31-21} = 0b01101100011;
+let hasNewValue = 1;
+let opNewValue = 0;
+let isSolo = 1;
+}
 def Y2_tlbr : HInst<
 (outs DoubleRegs:$Rdd32),
 (ins IntRegs:$Rs32),
diff --git a/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td b/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td
index 17cb96cdee9f9..23f4b3aef7d10 100644
--- a/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td
+++ b/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td
@@ -3827,3 +3827,14 @@ def: Pat<(int_hexagon_V6_vsub_hf_f8 HvxVR:$src1, HvxVR:$src2),
          (V6_vsub_hf_f8 HvxVR:$src1, HvxVR:$src2)>, Requires<[HasV79, UseHVX64B]>;
 def: Pat<(int_hexagon_V6_vsub_hf_f8_128B HvxVR:$src1, HvxVR:$src2),
          (V6_vsub_hf_f8 HvxVR:$src1, HvxVR:$src2)>, Requires<[HasV79, UseHVX128B]>;
+
+// V81 HVX Instructions.
+
+def: Pat<(int_hexagon_V6_vsub_hf_mix HvxVR:$src1, HvxVR:$src2),
+         (V6_vsub_hf_mix HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV81, UseHVX64B, UseHVXQFloat]>;
+def: Pat<(int_hexagon_V6_vsub_hf_mix_128B HvxVR:$src1, HvxVR:$src2),
+         (V6_vsub_hf_mix HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV81, UseHVX128B, UseHVXQFloat]>;
+def: Pat<(int_hexagon_V6_vsub_sf_mix HvxVR:$src1, HvxVR:$src2),
+         (V6_vsub_sf_mix HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV81, UseHVX64B, UseHVXQFloat]>;
+def: Pat<(int_hexagon_V6_vsub_sf_mix_128B HvxVR:$src1, HvxVR:$src2),
+         (V6_vsub_sf_mix HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV81, UseHVX128B, UseHVXQFloat]>;
diff --git a/llvm/lib/Target/Hexagon/HexagonSchedule.td b/llvm/lib/Target/Hexagon/HexagonSchedule.td
index b8a9cf3c0f569..9bcd4bf7d6841 100644
--- a/llvm/lib/Target/Hexagon/HexagonSchedule.td
+++ b/llvm/lib/Target/Hexagon/HexagonSchedule.td
@@ -75,3 +75,4 @@ include "HexagonScheduleV71T.td"
 include "HexagonScheduleV73.td"
 include "HexagonScheduleV75.td"
 include "HexagonScheduleV79.td"
+include "HexagonScheduleV81.td"
\ No newline at end of file
diff --git a/llvm/lib/Target/Hexagon/HexagonScheduleV81.td b/llvm/lib/Target/Hexagon/HexagonScheduleV81.td
new file mode 100644
index 0000000000000..dd5f5a039f44b
--- /dev/null
+++ b/llvm/lib/Target/Hexagon/HexagonScheduleV81.td
@@ -0,0 +1,31 @@
+//=-HexagonScheduleV81.td - HexagonV81 Scheduling Definitions *- tablegen -*-=//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+def HexagonV81ItinList : DepScalarItinV81, ScalarItin,
+                         DepHVXItinV81, HVXItin, PseudoItin {
+  list<InstrItinData> ItinList =
+    !listconcat(DepScalarItinV81_list, ScalarItin_list,
+                DepHVXItinV81_list, HVXItin_list, PseudoItin_list);
+}
+
+def HexagonItinerariesV81 :
+      ProcessorItineraries<[SLOT0, SLOT1, SLOT2, SLOT3, SLOT_ENDLOOP,
+                            CVI_ST, CVI_XLANE, CVI_SHIFT, CVI_MPY0, CVI_MPY1,
+                            CVI_LD, CVI_XLSHF, CVI_MPY01, CVI_ALL,
+                            CVI_ALL_NOMEM, CVI_ZW],
+                            [Hex_FWD, HVX_FWD],
+                            HexagonV81ItinList.ItinList>;
+
+def HexagonModelV81 : SchedMachineModel {
+  // Max issue per cycle == bundle width.
+  let IssueWidth = 4;
+  let Itineraries = HexagonItinerariesV81;
+  let LoadLatency = 1;
+  let CompleteModel = 0;
+}
diff --git a/llvm/lib/Target/Hexagon/HexagonSubtarget.h b/llvm/lib/Target/Hexagon/HexagonSubtarget.h
index 7430567133179..995f66d0551b4 100644
--- a/llvm/lib/Target/Hexagon/HexagonSubtarget.h
+++ b/llvm/lib/Target/Hexagon/HexagonSubtarget.h
@@ -224,6 +224,15 @@ class HexagonSubtarget : public HexagonGenSubtargetInfo {
   bool useHVXV79Ops() const {
     return HexagonHVXVersion >= Hexagon::ArchEnum::V79;
   }
+  bool hasV81Ops() const {
+    return getHexagonArchVersion() >= Hexagon::ArchEnum::V81;
+  }
+  bool hasV81OpsOnly() const {
+    return getHexagonArchVersion() == Hexagon::ArchEnum::V81;
+  }
+  bool useHVXV81Ops() const {
+    return HexagonHVXVersion >= Hexagon::ArchEnum::V81;
+  }
 
   bool useAudioOps() const { return UseAudioOps; }
   bool useCompound() const { return UseCompound; }
diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
index 645575720e73a..2f59b7c0fdb15 100644
--- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
+++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
@@ -186,6 +186,9 @@ static unsigned featureToArchVersion(unsigned Feature) {
   case Hexagon::ArchV79:
   case Hexagon::ExtensionHVXV79:
     return 79;
+  case Hexagon::ArchV81:
+  case Hexagon::ExtensionHVXV81:
+    return 81;
   }
   llvm_unreachable("Expected valid arch feature");
   return 0;
diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
index 6b48a218efe80..907a68ce3c282 100644
--- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
+++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
@@ -96,6 +96,8 @@ cl::opt<bool> MV75("mv75", cl::Hidden, cl::desc("Build for Hexagon V75"),
                    cl::init(false));
 cl::opt<bool> MV79("mv79", cl::Hidden, cl::desc("Build for Hexagon V79"),
                    cl::init(false));
+cl::opt<bool> MV81("mv81", cl::Hidden, cl::desc("Build for Hexagon V81"),
+                   cl::init(false));
 } // namespace
 
 static cl::opt<Hexagon::ArchEnum> EnableHVX(
@@ -111,6 +113,7 @@ static cl::opt<Hexagon::ArchEnum> EnableHVX(
                clEnumValN(Hexagon::ArchEnum::V73, "v73", "Build for HVX v73"),
                clEnumValN(Hexagon::ArchEnum::V75, "v75", "Build for HVX v75"),
                clEnumValN(Hexagon::ArchEnum::V79, "v79", "Build for HVX v79"),
+               clEnumValN(Hexagon::ArchEnum::V81, "v81", "Build for HVX v81"),
                // Sentinel for no value specified.
                clEnumValN(Hexagon::ArchEnum::Generic, "", "")),
     // Sentinel for flag not present.
@@ -159,6 +162,8 @@ static StringRef HexagonGetArchVariant() {
     return "hexagonv75";
   if (MV79)
     return "hexagonv79";
+  if (MV81)
+    return "hexagonv81";
 
   return "";
 }
@@ -474,6 +479,9 @@ std::string selectHexagonFS(StringRef CPU, StringRef FS) {
   case Hexagon::ArchEnum::V79:
     Result.push_back("+hvxv79");
     break;
+  case Hexagon::ArchEnum::V81:
+    Result.push_back("+hvxv81");
+    break;
 
   case Hexagon::ArchEnum::Generic: {
     Result.push_back(StringSwitch<StringRef>(CPU)
@@ -489,7 +497,8 @@ std::string selectHexagonFS(StringRef CPU, StringRef FS) {
                          .Case("hexagonv71t", "+hvxv71")
                          .Case("hexagonv73", "+hvxv73")
                          .Case("hexagonv75", "+hvxv75")
-                         .Case("hexagonv79", "+hvxv79"));
+                         .Case("hexagonv79", "+hvxv79")
+                         .Case("hexagonv81", "+hvxv81"));
     break;
   }
   case Hexagon::ArchEnum::NoArch:
@@ -538,7 +547,7 @@ FeatureBitset Hexagon_MC::completeHVXFeatures(const FeatureBitset &S) {
   FeatureBitset FB = S;
   unsigned CpuArch = ArchV5;
   for (unsigned F :
-       {ArchV79, ArchV75, ArchV73, ArchV71, ArchV69, ArchV68, ArchV67, ArchV66,
+         {ArchV81, ArchV79, ArchV75, ArchV73, ArchV71, ArchV69, ArchV68, ArchV67, ArchV66,
         ArchV65, ArchV62, ArchV60, ArchV55, ArchV5}) {
     if (!FB.test(F))
       continue;
@@ -556,7 +565,7 @@ FeatureBitset Hexagon_MC::completeHVXFeatures(const FeatureBitset &S) {
   for (unsigned F :
        {ExtensionHVXV60, ExtensionHVXV62, ExtensionHVXV65, ExtensionHVXV66,
         ExtensionHVXV67, ExtensionHVXV68, ExtensionHVXV69, ExtensionHVXV71,
-        ExtensionHVXV73, ExtensionHVXV75, ExtensionHVXV79}) {
+        ExtensionHVXV73, ExtensionHVXV75, ExtensionHVXV79, ExtensionHVXV81}) {
     if (!FB.test(F))
       continue;
     HasHvxVer = true;
@@ -569,6 +578,9 @@ FeatureBitset Hexagon_MC::completeHVXFeatures(const FeatureBitset &S) {
 
   // HasHvxVer is false, and UseHvx is true.
   switch (CpuArch) {
+  case ArchV81:
+    FB.set(ExtensionHVXV81);
+    [[fallthrough]];
   case ArchV79:
     FB.set(ExtensionHVXV79);
     [[fallthrough]];
@@ -668,12 +680,12 @@ void Hexagon_MC::addArchSubtarget(MCSubtargetInfo const *STI, StringRef FS) {
 
 std::optional<unsigned>
 Hexagon_MC::getHVXVersion(const FeatureBitset &Features) {
-  for (auto Arch : {Hexagon::ExtensionHVXV79, Hexagon::ExtensionHVXV75,
-                    Hexagon::ExtensionHVXV73, Hexagon::ExtensionHVXV71,
-                    Hexagon::ExtensionHVXV69, Hexagon::ExtensionHVXV68,
-                    Hexagon::ExtensionHVXV67, Hexagon::ExtensionHVXV66,
-                    Hexagon::ExtensionHVXV65, Hexagon::ExtensionHVXV62,
-                    Hexagon::ExtensionHVXV60})
+  for (auto Arch : {Hexagon::ExtensionHVXV81, Hexagon::ExtensionHVXV79,
+                    Hexagon::ExtensionHVXV75, Hexagon::ExtensionHVXV73,
+                    Hexagon::ExtensionHVXV71, Hexagon::ExtensionHVXV69,
+                    Hexagon::ExtensionHVXV68, Hexagon::ExtensionHVXV67,
+                    Hexagon::ExtensionHVXV66, Hexagon::ExtensionHVXV65,
+                    Hexagon::ExtensionHVXV62, Hexagon::ExtensionHVXV60})
     if (Features.test(Arch))
       return Arch;
   return {};
@@ -681,13 +693,13 @@ Hexagon_MC::getHVXVersion(const FeatureBitset &Features) {
 
 unsigned Hexagon_MC::getArchVersion(const FeatureBitset &Features) {
   for (auto Arch :
-       {Hexagon::ArchV79, Hexagon::ArchV75, Hexagon::ArchV73, Hexagon::ArchV71,
-        Hexagon::ArchV69, Hexagon::ArchV68, Hexagon::ArchV67, Hexagon::ArchV66,
-        Hexagon::ArchV65, Hexagon::ArchV62, Hexagon::ArchV60, Hexagon::ArchV55,
-        Hexagon::ArchV5})
+       {Hexagon::ArchV81, Hexagon::ArchV79, Hexagon::ArchV75, Hexagon::ArchV73,
+        Hexagon::ArchV71, Hexagon::ArchV69, Hexagon::ArchV68, Hexagon::ArchV67,
+        Hexagon::ArchV66, Hexagon::ArchV65, Hexagon::ArchV62, Hexagon::ArchV60,
+        Hexagon::ArchV55, Hexagon::ArchV5})
     if (Features.test(Arch))
       return Arch;
-  llvm_unreachable("Expected arch v5-v79");
+  llvm_unreachable("Expected arch v5-v81");
   return 0;
 }
 
@@ -708,7 +720,8 @@ unsigned Hexagon_MC::GetELFFlags(const MCSubtargetInfo &STI) {
       .Case("hexagonv71t", llvm::ELF::EF_HEXAGON_MACH_V71T)
       .Case("hexagonv73", llvm::ELF::EF_HEXAGON_MACH_V73)
       .Case("hexagonv75", llvm::ELF::EF_HEXAGON_MACH_V75)
-      .Case("hexagonv79", llvm::ELF::EF_HEXAGON_MACH_V79);
+      .Case("hexagonv79", llvm::ELF::EF_HEXAGON_MACH_V79)
+      .Case("hexagonv81", llvm::ELF::EF_HEXAGON_MACH_V81);
 }
 
 llvm::ArrayRef<MCPhysReg> Hexagon_MC::GetVectRegRev() {
diff --git a/llvm/test/MC/Hexagon/arch-support.s b/llvm/test/MC/Hexagon/arch-support.s
index eb362a7db3caf..94a6eb1714f30 100644
--- a/llvm/test/MC/Hexagon/arch-support.s
+++ b/llvm/test/MC/Hexagon/arch-support.s
@@ -10,6 +10,7 @@
 # RUN: llvm-mc -triple=hexagon -mv73 -filetype=obj %s | llvm-readelf -h - | FileCheck --check-prefix=CHECK-V73 %s
 # RUN: llvm-mc -triple=hexagon -mv75 -filetype=obj %s | llvm-readelf -h - | FileCheck --check-prefix=CHECK-V75 %s
 # RUN: llvm-mc -triple=hexagon -mv79 -filetype=obj %s | llvm-readelf -h - | FileCheck --check-prefix=CHECK-V79 %s
+# RUN: llvm-mc -triple=hexagon -mv81 -filetype=obj %s | llvm-readelf -h - | FileCheck --check-prefix=CHECK-V81 %s
 
 ## Check which arch version llvm-mc sets when the user does not provide one.
 # RUN: llvm-mc -triple=hexagon -filetype=obj %s | llvm-readelf -h - | FileCheck --check-prefix=CHECK-DEFAULT %s
@@ -26,6 +27,7 @@
 # RUN: llvm-mc -triple=hexagon -mv73 -filetype=obj %s | llvm-objdump --disassemble - | FileCheck --check-prefix=CHECK-OBJDUMP %s
 # RUN: llvm-mc -triple=hexagon -mv75 -filetype=obj %s | llvm-objdump --disassemble - | FileCheck --check-prefix=CHECK-OBJDUMP %s
 # RUN: llvm-mc -triple=hexagon -mv79 -filetype=obj %s | llvm-objdump --disassemble - | FileCheck --check-prefix=CHECK-OBJDUMP %s
+# RUN: llvm-mc -triple=hexagon -mv81 -filetype=obj %s | llvm-objdump --disassemble - | FileCheck --check-prefix=CHECK-OBJDUMP %s
     .text
 r1 = r1
 
@@ -41,6 +43,7 @@ r1 = r1
 # CHECK-V73: Flags:{{.*}}0x73
 # CHECK-V75: Flags:{{.*}}0x75
 # CHECK-V79: Flags:{{.*}}0x79
+# CHECK-V81: Flags:{{.*}}0x81
 # CHECK-DEFAULT: Flags:{{.*}}0x68
 
 # CHECK-OBJDUMP: { r1 = r1 }
diff --git a/llvm/test/MC/Hexagon/sysregs_v81.s b/llvm/test/MC/Hexagon/sysregs_v81.s
new file mode 100644
index 0000000000000..9d72e60786ed1
--- /dev/null
+++ b/llvm/test/MC/Hexagon/sysregs_v81.s
@@ -0,0 +1,199 @@
+// https://jira-dc.qualcomm.com/jira/browse/QTOOL-111668
+// Tests v81 system register aliases.
+// RUN: llvm-mc -mv81 -triple=hexagon -filetype=obj %s | \
+// RUN:   llvm-objdump --mv81 -d - | FileCheck --match-full-lines %s
+
+// reads
+r1 = commit9t
+r1 = s85
+r1 = commit10t
+r1 = s86
+r1 = commit11t
+r1 = s87
+r1 = commit12t
+r1 = s88
+r1 = commit13t
+r1 = s89
+r1 = commit14t
+r1 = s90
+r1 = commit15t
+r1 = s91
+r1 = commit16t
+r1 = s92
+r1 = pcycle9t
+r1 = s93
+r1 = pcycle10t
+r1 = s94
+r1 = pcycle11t
+r1 = s95
+r1 = pcycle12t
+r1 = s96
+r1 = pcycle13t
+r1 = s97
+r1 = pcycle14t
+r1 = s98
+r1 = pcycle15t
+r1 = s99
+r1 = pcycle16t
+r1 = s100
+r1 = ipend
+r1 = s101
+r1 = iad
+r1 = s102
+r1 = isdbst1
+r1 = s103
+r1 = isdbst2
+r1 = s104
+r1 = brkptinfo1
+r1 = s105
+
+r1:0 = s85:84
+r1:0 = s87:86
+r1:0 = s89:88
+r1:0 = s91:90
+r1:0 = s93:92
+r1:0 = s95:94
+r1:0 = s97:96
+r1:0 = s99:98
+r1:0 = s101:100
+r1:0 = s103:102
+r1:0 = s105:104
+
+// writes
+// S101-105 are read-only
+commit9t = r1
+s85 = r1
+commit10t = r1
+s86 = r1
+commit11t = r1
+s87 = r1
+commit12t = r1
+s88 = r1
+commit13t = r1
+s89 = r1
+commit14t = r1
+s90 = r1
+commit15t = r1
+s91 = r1
+commit16t = r1
+s92 = r1
+pcycle9t = r1
+s93 = r1
+pcycle10t = r1
+s94 = r1
+pcycle11t = r1
+s95 = r1
+pcycle12t = r1
+s96 = r1
+pcycle13t = r1
+s97 = r1
+pcycle14t = r1
+s98 = r1
+pcycle15t = r1
+s99 = r1
+pcycle16t = r1
+s100 = r1
+
+s85:84 = r1:0
+s87:86 = r1:0
+s89:88 = r1:0
+s91:90 = r1:0
+s93:92 = r1:0
+s95:94 = r1:0
+s97:96 = r1:0
+s99:98 = r1:0
+
+//      CHECK:  0:       01 c0 d5 6e     6ed5c001 {      r1 = commit9t }
+// CHECK-NEXT:  4:       01 c0 d5 6e     6ed5c001 {      r1 = commit9t }
+// CHECK-NEXT:  8:       01 c0 d6 6e     6ed6c001 {      r1 = commit10t }
+// CHECK-NEXT:  c:       01 c0 d6 6e     6ed6c001 {      r1 = commit10t }
+// CHECK-NEXT: 10:       01 c0 d7 6e     6ed7c001 {      r1 = commit11t }
+// CHECK-NEXT: 14:       01 c0 d7 6e     6ed7c001 {      r1 = commit11t }
+// CHECK-NEXT: 18:       01 c0 d8 6e     6ed8c001 {      r1 = commit12t }
+// CHECK-NEXT: 1c:       01 c0 d8 6e     6ed8c001 {      r1 = commit12t }
+// CHECK-NEXT: 20:       01 c0 d9 6e     6ed9c001 {      r1 = commit13t }
+// CHECK-NEXT: 24:       01 c0 d9 6e     6ed9c001 {      r1 = commit13t }
+// CHECK-NEXT: 28:       01 c0 da 6e     6edac001 {      r1 = commit14t }
+// CHECK-NEXT: 2c:       01 c0 da 6e     6edac001 {      r1 = commit14t }
+// CHECK-NEXT: 30:       01 c0 db 6e     6edbc001 {      r1 = commit15t }
+// CHECK-NEXT: 34:       01 c0 db 6e     6edbc001 {      r1 = commit15t }
+// CHECK-NEXT: 38:       01 c0 dc 6e     6edcc001 {      r1 = commit16t }
+// CHECK-NEXT: 3c:       01 c0 dc 6e     6edcc001 {      r1 = commit16t }
+// CHECK-NEXT: 40:       01 c0 dd 6e     6eddc001 {      r1 = pcycle9t }
+// CHECK-NEXT: 44:       01 c0 dd 6e     6eddc001 {      r1 = pcycle9t }
+// CHECK-NEXT: 48:       01 c0 de 6e     6edec001 {      r1 = pcycle10t }
+// CHECK-NEXT: 4c:       01 c0 de 6e     6edec001 {      r1 = pcycle10t }
+// CHECK-NEXT: 50:       01 c0 df 6e     6edfc001 {      r1 = pcycle11t }
+// CHECK-NEXT: 54:       01 c0 df 6e     6edfc001 {      r1 = pcycle11t }
+// CHECK-NEXT: 58:       01 c0 e0 6e     6ee0c001 {      r1 = pcycle12t }
+// CHECK-NEXT: 5c:       01 c0 e0 6e     6ee0c001 {      r1 = pcycle12t }
+// CHECK-NEXT: 60:       01 c0 e1 6e     6ee1c001 {      r1 = pcycle13t }
+// CHECK-NEXT: 64:       01 c0 e1 6e     6ee1c001 {      r1 = pcycle13t }
+// CHECK-NEXT: 68:       01 c0 e2 6e     6ee2c001 {      r1 = pcycle14t }
+// CHECK-NEXT: 6c:       01 c0 e2 6e     6ee2c001 {      r1 = pcycle14t }
+// CHECK-NEXT: 70:       01 c0 e3 6e     6ee3c001 {      r1 = pcycle15t }
+// CHECK-NEXT: 74:       01 c0 e3 6e     6ee3c001 {      r1 = pcycle15t }
+// CHECK-NEXT: 78:       01 c0 e4 6e     6ee4c001 {      r1 = pcycle16t }
+// CHECK-NEXT: 7c:       01 c0 e4 6e     6ee4c001 {      r1 = pcycle16t }
+// CHECK-NEXT: 80:       01 c0 e5 6e     6ee5c001 {      r1 = ipend }
+// CHECK-NEXT: 84:       01 c0 e5 6e     6ee5c001 {      r1 = ipend }
+// CHECK-NEXT: 88:       01 c0 e6 6e     6ee6c001 {      r1 = iad }
+// CHECK-NEXT: 8c:       01 c0 e6 6e     6ee6c001 {      r1 = iad }
+// CHECK-NEXT: 90:       01 c0 e7 6e     6ee7c001 {      r1 = isdbst1 }
+// CHECK-NEXT: 94:       01 c0 e7 6e     6ee7c001 {      r1 = isdbst1 }
+// CHECK-NEXT: 98:       01 c0 e8 6e     6ee8c001 {      r1 = isdbst2 }
+// CHECK-NEXT: 9c:       01 c0 e8 6e     6ee8c001 {      r1 = isdbst2 }
+// CHECK-NEXT: a0:       01 c0 e9 6e     6ee9c001 {      r1 = brkptinfo1 }
+// CHECK-NEXT: a4:       01 c0 e9 6e     6ee9c001 {      r1 = brkptinfo1 }
+// CHECK-NEXT: a8:       00 c0 54 6f     6f54c000 {      r1:0 = s85:84 }
+// CHECK-NEXT: ac:       00 c0 56 6f     6f56c000 {      r1:0 = s87:86 }
+// CHECK-NEXT: b0:       00 c0 58 6f     6f58c000 {      r1:0 = s89:88 }
+// CHECK-NEXT: b4:       00 c0 5a 6f     6f5ac000 {      r1:0 = s91:90 }
+// CHECK-NEXT: b8:       00 c0 5c 6f     6f5cc000 {      r1:0 = s93:92 }
+// CHECK-NEXT: bc:       00 c0 5e 6f     6f5ec000 {      r1:0 = s95:94 }
+// CHECK-NEXT: c0:       00 c0 60 6f     6f60c000 {      r1:0 = s97:96 }
+// CHECK-NEXT: c4:       00 c0 62 6f     6f62c000 {      r1:0 = s99:98 }
+// CHECK-NEXT: c8:       00 c0 64 6f     6f64c000 {      r1:0 = s101:100 }
+// CHECK-NEXT: cc:       00 c0 66 6f     6f66c000 {      r1:0 = s103:102 }
+// CHECK-NEXT: d0:       00 c0 68 6f     6f68c000 {      r1:0 = s105:104 }
+// CHECK-NEXT: d4:       55 c0 01 67     6701c055 {      commit9t = r1 }
+// CHECK-NEXT: d8:       55 c0 01 67     6701c055 {      commit9t = r1 }
+// CHECK-NEXT: dc:       56 c0 01 67     6701c056 {      commit10t = r1 }
+// CHECK-NEXT: e0:       56 c0 01 67     6701c056 {      commit10t = r1 }
+// CHECK-NEXT: e4:       57 c0 01 67     6701c057 {      commit11t = r1 }
+// CHECK-NEXT: e8:       57 c0 01 67     6701c057 {      commit11t = r1 }
+// CHECK-NEXT: ec:       58 c0 01 67     6701c058 {      commit12t = r1 }
+// CHECK-NEXT: f0:       58 c0 01 67     6701c058 {      commit12t = r1 }
+// CHECK-NEXT: f4:       59 c0 01 67     6701c059 {      commit13t = r1 }
+// CHECK-NEXT: f8:       59 c0 01 67     6701c059 {      commit13t = r1 }
+// CHECK-NEXT: fc:       5a c0 01 67     6701c05a {      commit14t = r1 }
+// CHECK-NEXT:100:       5a c0 01 67     6701c05a {      commit14t = r1 }
+// CHECK-NEXT:104:       5b c0 01 67     6701c05b {      commit15t = r1 }
+// CHECK-NEXT:108:       5b c0 01 67     6701c05b {      commit15t = r1 }
+// CHECK-NEXT:10c:       5c c0 01 67     6701c05c {      commit16t = r1 }
+// CHECK-NEXT:110:       5c c0 01 67     6701c05c {      commit16t = r1 }
+// CHECK-NEXT:114:       5d c0 01 67     6701c05d {      pcycle9t = r1 }
+// CHECK-NEXT:118:       5d c0 01 67     6701c05d {      pcycle9t = r1 }
+// CHECK-NEXT:11c:       5e c0 01 67     6701c05e {      pcycle10t = r1 }
+// CHECK-NEXT:120:       5e c0 01 67     6701c05e {      pcycle10t = r1 }
+// CHECK-NEXT:124:       5f c0 01 67     6701c05f {      pcycle11t = r1 }
+// CHECK-NEXT:128:       5f c0 01 67     6701c05f {      pcycle11t = r1 }
+// CHECK-NEXT:12c:       60 c0 01 67     6701c060 {      pcycle12t = r1 }
+// CHECK-NEXT:130:       60 c0 01 67     6701c060 {      pcycle12t = r1 }
+// CHECK-NEXT:134:       61 c0 01 67     6701c061 {      pcycle13t = r1 }
+// CHECK-NEXT:138:       61 c0 01 67     6701c061 {      pcycle13t = r1 }
+// CHECK-NEXT:13c:       62 c0 01 67     6701c062 {      pcycle14t = r1 }
+// CHECK-NEXT:140:       62 c0 01 67     6701c062 {      pcycle14t = r1 }
+// CHECK-NEXT:144:       63 c0 01 67     6701c063 {      pcycle15t = r1 }
+// CHECK-NEXT:148:       63 c0 01 67     6701c063 {      pcycle15t = r1 }
+// CHECK-NEXT:14c:       64 c0 01 67     6701c064 {      pcycle16t = r1 }
+// CHECK-NEXT:150:       64 c0 01 67     6701c064 {      pcycle16t = r1 }
+// CHECK-NEXT:154:       54 c0 00 6d     6d00c054 {      s85:84 = r1:0 }
+// CHECK-NEXT:158:       56 c0 00 6d     6d00c056 {      s87:86 = r1:0 }
+// CHECK-NEXT:15c:       58 c0 00 6d     6d00c058 {      s89:88 = r1:0 }
+// CHECK-NEXT:160:       5a c0 00 6d     6d00c05a {      s91:90 = r1:0 }
+// CHECK-NEXT:164:       5c c0 00 6d     6d00c05c {      s93:92 = r1:0 }
+// CHECK-NEXT:168:       5e c0 00 6d     6d00c05e {      s95:94 = r1:0 }
+// CHECK-NEXT:16c:       60 c0 00 6d     6d00c060 {      s97:96 = r1:0 }
+// CHECK-NEXT:170:       62 c0 00 6d     6d00c062 {      s99:98 = r1:0 }
+// CHECK-NOT: {{.}}
\ No newline at end of file
diff --git a/llvm/test/MC/Hexagon/sysregs_v81_readonly.s b/llvm/test/MC/Hexagon/sysregs_v81_readonly.s
new file mode 100644
index 0000000000000..cb52c07914998
--- /dev/null
+++ b/llvm/test/MC/Hexagon/sysregs_v81_readonly.s
@@ -0,0 +1,38 @@
+// https://jira-dc.qualcomm.com/jira/browse/QTOOL-111668
+// Tests read only v81 system registers
+
+// RUN: not llvm-mc -triple=hexagon -mv81 -filetype=asm %s 2>&1 | \
+// RUN:   FileCheck --implicit-check-not=error %s
+
+s101=r0
+ipend = r0
+
+s102=r0
+iad=r0
+
+s103=r0
+isdbst1=r0
+
+s104=r0
+isdbst2=r0
+
+s105=r0
+brkptinfo1=r0
+
+s101:100 = r1:0
+s103:102 = r1:0
+s105:104 = r1:0
+
+// CHECK: error: Cannot write to read-only register `S101'
+// CHECK: error: Cannot write to read-only register `S101'
+// CHECK: error: Cannot write to read-only register `S102'
+// CHECK: error: Cannot write to read-only register `S102'
+// CHECK: error: Cannot write to read-only register `S103'
+// CHECK: error: Cannot write to read-only register `S103'
+// CHECK: error: Cannot write to read-only register `S104'
+// CHECK: error: Cannot write to read-only register `S104'
+// CHECK: error: Cannot write to read-only register `S105'
+// CHECK: error: Cannot write to read-only register `S105'
+// CHECK: error: Cannot write to read-only register `S101_100'
+// CHECK: error: Cannot write to read-only register `S103_102'
+// CHECK: error: Cannot write to read-only register `S105_104'
diff --git a/llvm/test/MC/Hexagon/v81.s b/llvm/test/MC/Hexagon/v81.s
new file mode 100644
index 0000000000000..323a6c7f17009
--- /dev/null
+++ b/llvm/test/MC/Hexagon/v81.s
@@ -0,0 +1,9334 @@
+// WARNING: This test was auto-generated by HexagonTestWriter.py
+// RUN: llvm-mc --mattr=+zreg,+audio,+cabac --hexagon-add-build-attributes -triple=hexagon --mcpu=hexagonv81 -filetype=obj %s | \
+// RUN:   llvm-objdump -d - | FileCheck %s
+
+//A2_add
+//Rd32=add(Rs32,Rt32)
+r2=add(r0,r0)
+//CHECK: f300c002
+
+//A2_sub
+//Rd32=sub(Rt32,Rs32)
+r2=sub(r0,r0)
+//CHECK: f320c002
+
+//A2_paddt
+//if (Pu4) Rd32=add(Rs32,Rt32)
+if (p0) r2=add(r0,r0)
+//CHECK: fb00c002
+
+//A2_paddf
+//if (!Pu4) Rd32=add(Rs32,Rt32)
+if (!p0) r2=add(r0,r0)
+//CHECK: fb00c082
+
+//A2_paddtnew
+//if (Pu4.new) Rd32=add(Rs32,Rt32)
+{
+    p0=p1
+    if (p0.new) r2=add(r0,r0)
+}
+//CHECK: fb00e002
+
+//A2_paddfnew
+//if (!Pu4.new) Rd32=add(Rs32,Rt32)
+{
+    p0=p1
+    if (!p0.new) r2=add(r0,r0)
+}
+//CHECK: fb00e082
+
+//A2_psubt
+//if (Pu4) Rd32=sub(Rt32,Rs32)
+if (p0) r2=sub(r0,r0)
+//CHECK: fb20c002
+
+//A2_psubf
+//if (!Pu4) Rd32=sub(Rt32,Rs32)
+if (!p0) r2=sub(r0,r0)
+//CHECK: fb20c082
+
+//A2_psubtnew
+//if (Pu4.new) Rd32=sub(Rt32,Rs32)
+{
+    p0=p1
+    if (p0.new) r2=sub(r0,r0)
+}
+//CHECK: fb20e002
+
+//A2_psubfnew
+//if (!Pu4.new) Rd32=sub(Rt32,Rs32)
+{
+    p0=p1
+    if (!p0.new) r2=sub(r0,r0)
+}
+//CHECK: fb20e082
+
+//A2_paddit
+//if (Pu4) Rd32=add(Rs32,#s8)
+if (p0) r2=add(r0,#0x0)
+//CHECK: 7400c002
+
+//A2_paddif
+//if (!Pu4) Rd32=add(Rs32,#s8)
+if (!p0) r2=add(r0,#0x0)
+//CHECK: 7480c002
+
+//A2_padditnew
+//if (Pu4.new) Rd32=add(Rs32,#s8)
+{
+    p0=p1
+    if (p0.new) r2=add(r0,#0x0)
+}
+//CHECK: 7400e002
+
+//A2_paddifnew
+//if (!Pu4.new) Rd32=add(Rs32,#s8)
+{
+    p0=p1
+    if (!p0.new) r2=add(r0,#0x0)
+}
+//CHECK: 7480e002
+
+//A2_pxort
+//if (Pu4) Rd32=xor(Rs32,Rt32)
+if (p0) r2=xor(r0,r0)
+//CHECK: f960c002
+
+//A2_pxorf
+//if (!Pu4) Rd32=xor(Rs32,Rt32)
+if (!p0) r2=xor(r0,r0)
+//CHECK: f960c082
+
+//A2_pxortnew
+//if (Pu4.new) Rd32=xor(Rs32,Rt32)
+{
+    p0=p1
+    if (p0.new) r2=xor(r0,r0)
+}
+//CHECK: f960e002
+
+//A2_pxorfnew
+//if (!Pu4.new) Rd32=xor(Rs32,Rt32)
+{
+    p0=p1
+    if (!p0.new) r2=xor(r0,r0)
+}
+//CHECK: f960e082
+
+//A2_pandt
+//if (Pu4) Rd32=and(Rs32,Rt32)
+if (p0) r2=and(r0,r0)
+//CHECK: f900c002
+
+//A2_pandf
+//if (!Pu4) Rd32=and(Rs32,Rt32)
+if (!p0) r2=and(r0,r0)
+//CHECK: f900c082
+
+//A2_pandtnew
+//if (Pu4.new) Rd32=and(Rs32,Rt32)
+{
+    p0=p1
+    if (p0.new) r2=and(r0,r0)
+}
+//CHECK: f900e002
+
+//A2_pandfnew
+//if (!Pu4.new) Rd32=and(Rs32,Rt32)
+{
+    p0=p1
+    if (!p0.new) r2=and(r0,r0)
+}
+//CHECK: f900e082
+
+//A2_port
+//if (Pu4) Rd32=or(Rs32,Rt32)
+if (p0) r2=or(r0,r0)
+//CHECK: f920c002
+
+//A2_porf
+//if (!Pu4) Rd32=or(Rs32,Rt32)
+if (!p0) r2=or(r0,r0)
+//CHECK: f920c082
+
+//A2_portnew
+//if (Pu4.new) Rd32=or(Rs32,Rt32)
+{
+    p0=p1
+    if (p0.new) r2=or(r0,r0)
+}
+//CHECK: f920e002
+
+//A2_porfnew
+//if (!Pu4.new) Rd32=or(Rs32,Rt32)
+{
+    p0=p1
+    if (!p0.new) r2=or(r0,r0)
+}
+//CHECK: f920e082
+
+//A4_psxtbt
+//if (Pu4) Rd32=sxtb(Rs32)
+if (p0) r2=sxtb(r0)
+//CHECK: 70a0e002
+
+//A4_psxtbf
+//if (!Pu4) Rd32=sxtb(Rs32)
+if (!p0) r2=sxtb(r0)
+//CHECK: 70a0e802
+
+//A4_psxtbtnew
+//if (Pu4.new) Rd32=sxtb(Rs32)
+{
+    p0=p1
+    if (p0.new) r2=sxtb(r0)
+}
+//CHECK: 70a0e402
+
+//A4_psxtbfnew
+//if (!Pu4.new) Rd32=sxtb(Rs32)
+{
+    p0=p1
+    if (!p0.new) r2=sxtb(r0)
+}
+//CHECK: 70a0ec02
+
+//A4_pzxtbt
+//if (Pu4) Rd32=zxtb(Rs32)
+if (p0) r2=zxtb(r0)
+//CHECK: 7080e002
+
+//A4_pzxtbf
+//if (!Pu4) Rd32=zxtb(Rs32)
+if (!p0) r2=zxtb(r0)
+//CHECK: 7080e802
+
+//A4_pzxtbtnew
+//if (Pu4.new) Rd32=zxtb(Rs32)
+{
+    p0=p1
+    if (p0.new) r2=zxtb(r0)
+}
+//CHECK: 7080e402
+
+//A4_pzxtbfnew
+//if (!Pu4.new) Rd32=zxtb(Rs32)
+{
+    p0=p1
+    if (!p0.new) r2=zxtb(r0)
+}
+//CHECK: 7080ec02
+
+//A4_psxtht
+//if (Pu4) Rd32=sxth(Rs32)
+if (p0) r2=sxth(r0)
+//CHECK: 70e0e002
+
+//A4_psxthf
+//if (!Pu4) Rd32=sxth(Rs32)
+if (!p0) r2=sxth(r0)
+//CHECK: 70e0e802
+
+//A4_psxthtnew
+//if (Pu4.new) Rd32=sxth(Rs32)
+{
+    p0=p1
+    if (p0.new) r2=sxth(r0)
+}
+//CHECK: 70e0e402
+
+//A4_psxthfnew
+//if (!Pu4.new) Rd32=sxth(Rs32)
+{
+    p0=p1
+    if (!p0.new) r2=sxth(r0)
+}
+//CHECK: 70e0ec02
+
+//A4_pzxtht
+//if (Pu4) Rd32=zxth(Rs32)
+if (p0) r2=zxth(r0)
+//CHECK: 70c0e002
+
+//A4_pzxthf
+//if (!Pu4) Rd32=zxth(Rs32)
+if (!p0) r2=zxth(r0)
+//CHECK: 70c0e802
+
+//A4_pzxthtnew
+//if (Pu4.new) Rd32=zxth(Rs32)
+{
+    p0=p1
+    if (p0.new) r2=zxth(r0)
+}
+//CHECK: 70c0e402
+
+//A4_pzxthfnew
+//if (!Pu4.new) Rd32=zxth(Rs32)
+{
+    p0=p1
+    if (!p0.new) r2=zxth(r0)
+}
+//CHECK: 70c0ec02
+
+//A4_paslht
+//if (Pu4) Rd32=aslh(Rs32)
+if (p0) r2=aslh(r0)
+//CHECK: 7000e002
+
+//A4_paslhf
+//if (!Pu4) Rd32=aslh(Rs32)
+if (!p0) r2=aslh(r0)
+//CHECK: 7000e802
+
+//A4_paslhtnew
+//if (Pu4.new) Rd32=aslh(Rs32)
+{
+    p0=p1
+    if (p0.new) r2=aslh(r0)
+}
+//CHECK: 7000e402
+
+//A4_paslhfnew
+//if (!Pu4.new) Rd32=aslh(Rs32)
+{
+    p0=p1
+    if (!p0.new) r2=aslh(r0)
+}
+//CHECK: 7000ec02
+
+//A4_pasrht
+//if (Pu4) Rd32=asrh(Rs32)
+if (p0) r2=asrh(r0)
+//CHECK: 7020e002
+
+//A4_pasrhf
+//if (!Pu4) Rd32=asrh(Rs32)
+if (!p0) r2=asrh(r0)
+//CHECK: 7020e802
+
+//A4_pasrhtnew
+//if (Pu4.new) Rd32=asrh(Rs32)
+{
+    p0=p1
+    if (p0.new) r2=asrh(r0)
+}
+//CHECK: 7020e402
+
+//A4_pasrhfnew
+//if (!Pu4.new) Rd32=asrh(Rs32)
+{
+    p0=p1
+    if (!p0.new) r2=asrh(r0)
+}
+//CHECK: 7020ec02
+
+//A2_addsat
+//Rd32=add(Rs32,Rt32):sat
+r2=add(r0,r0):sat
+//CHECK: f640c002
+
+//A2_subsat
+//Rd32=sub(Rt32,Rs32):sat
+r2=sub(r0,r0):sat
+//CHECK: f6c0c002
+
+//A2_addi
+//Rd32=add(Rs32,#s16)
+r2=add(r0,#0x0)
+//CHECK: b000c002
+
+//C4_addipc
+//Rd32=add(pc,#u6)
+r2=add(pc,#0x0)
+//CHECK: 6a49c002
+
+//A2_addh_l16_ll
+//Rd32=add(Rt32.l,Rs32.l)
+r2=add(r0.l,r0.l)
+//CHECK: d500c002
+
+//A2_addh_l16_hl
+//Rd32=add(Rt32.l,Rs32.h)
+r2=add(r0.l,r0.h)
+//CHECK: d500c042
+
+//A2_addh_l16_sat_ll
+//Rd32=add(Rt32.l,Rs32.l):sat
+r2=add(r0.l,r0.l):sat
+//CHECK: d500c082
+
+//A2_addh_l16_sat_hl
+//Rd32=add(Rt32.l,Rs32.h):sat
+r2=add(r0.l,r0.h):sat
+//CHECK: d500c0c2
+
+//A2_subh_l16_ll
+//Rd32=sub(Rt32.l,Rs32.l)
+r2=sub(r0.l,r0.l)
+//CHECK: d520c002
+
+//A2_subh_l16_hl
+//Rd32=sub(Rt32.l,Rs32.h)
+r2=sub(r0.l,r0.h)
+//CHECK: d520c042
+
+//A2_subh_l16_sat_ll
+//Rd32=sub(Rt32.l,Rs32.l):sat
+r2=sub(r0.l,r0.l):sat
+//CHECK: d520c082
+
+//A2_subh_l16_sat_hl
+//Rd32=sub(Rt32.l,Rs32.h):sat
+r2=sub(r0.l,r0.h):sat
+//CHECK: d520c0c2
+
+//A2_addh_h16_ll
+//Rd32=add(Rt32.l,Rs32.l):<<16
+r2=add(r0.l,r0.l):<<16
+//CHECK: d540c002
+
+//A2_addh_h16_lh
+//Rd32=add(Rt32.l,Rs32.h):<<16
+r2=add(r0.l,r0.h):<<16
+//CHECK: d540c022
+
+//A2_addh_h16_hl
+//Rd32=add(Rt32.h,Rs32.l):<<16
+r2=add(r0.h,r0.l):<<16
+//CHECK: d540c042
+
+//A2_addh_h16_hh
+//Rd32=add(Rt32.h,Rs32.h):<<16
+r2=add(r0.h,r0.h):<<16
+//CHECK: d540c062
+
+//A2_addh_h16_sat_ll
+//Rd32=add(Rt32.l,Rs32.l):sat:<<16
+r2=add(r0.l,r0.l):sat:<<16
+//CHECK: d540c082
+
+//A2_addh_h16_sat_lh
+//Rd32=add(Rt32.l,Rs32.h):sat:<<16
+r2=add(r0.l,r0.h):sat:<<16
+//CHECK: d540c0a2
+
+//A2_addh_h16_sat_hl
+//Rd32=add(Rt32.h,Rs32.l):sat:<<16
+r2=add(r0.h,r0.l):sat:<<16
+//CHECK: d540c0c2
+
+//A2_addh_h16_sat_hh
+//Rd32=add(Rt32.h,Rs32.h):sat:<<16
+r2=add(r0.h,r0.h):sat:<<16
+//CHECK: d540c0e2
+
+//A2_subh_h16_ll
+//Rd32=sub(Rt32.l,Rs32.l):<<16
+r2=sub(r0.l,r0.l):<<16
+//CHECK: d560c002
+
+//A2_subh_h16_lh
+//Rd32=sub(Rt32.l,Rs32.h):<<16
+r2=sub(r0.l,r0.h):<<16
+//CHECK: d560c022
+
+//A2_subh_h16_hl
+//Rd32=sub(Rt32.h,Rs32.l):<<16
+r2=sub(r0.h,r0.l):<<16
+//CHECK: d560c042
+
+//A2_subh_h16_hh
+//Rd32=sub(Rt32.h,Rs32.h):<<16
+r2=sub(r0.h,r0.h):<<16
+//CHECK: d560c062
+
+//A2_subh_h16_sat_ll
+//Rd32=sub(Rt32.l,Rs32.l):sat:<<16
+r2=sub(r0.l,r0.l):sat:<<16
+//CHECK: d560c082
+
+//A2_subh_h16_sat_lh
+//Rd32=sub(Rt32.l,Rs32.h):sat:<<16
+r2=sub(r0.l,r0.h):sat:<<16
+//CHECK: d560c0a2
+
+//A2_subh_h16_sat_hl
+//Rd32=sub(Rt32.h,Rs32.l):sat:<<16
+r2=sub(r0.h,r0.l):sat:<<16
+//CHECK: d560c0c2
+
+//A2_subh_h16_sat_hh
+//Rd32=sub(Rt32.h,Rs32.h):sat:<<16
+r2=sub(r0.h,r0.h):sat:<<16
+//CHECK: d560c0e2
+
+//A2_aslh
+//Rd32=aslh(Rs32)
+r2=aslh(r0)
+//CHECK: 7000c002
+
+//A2_asrh
+//Rd32=asrh(Rs32)
+r2=asrh(r0)
+//CHECK: 7020c002
+
+//A2_addp
+//Rdd32=add(Rss32,Rtt32)
+r3:2=add(r1:0,r1:0)
+//CHECK: d300c0e2
+
+//A2_addpsat
+//Rdd32=add(Rss32,Rtt32):sat
+r3:2=add(r1:0,r1:0):sat
+//CHECK: d360c0a2
+
+//A2_addspl
+//Rdd32=add(Rss32,Rtt32):raw:lo
+r3:2=add(r1:0,r1:0):raw:lo
+//CHECK: d360c0c2
+
+//A2_addsph
+//Rdd32=add(Rss32,Rtt32):raw:hi
+r3:2=add(r1:0,r1:0):raw:hi
+//CHECK: d360c0e2
+
+//A2_subp
+//Rdd32=sub(Rtt32,Rss32)
+r3:2=sub(r1:0,r1:0)
+//CHECK: d320c0e2
+
+//A4_addp_c
+//Rdd32=add(Rss32,Rtt32,Px4):carry
+r3:2=add(r1:0,r1:0,p0):carry
+//CHECK: c2c0c002
+
+//A4_subp_c
+//Rdd32=sub(Rss32,Rtt32,Px4):carry
+r3:2=sub(r1:0,r1:0,p0):carry
+//CHECK: c2e0c002
+
+//A2_negsat
+//Rd32=neg(Rs32):sat
+r2=neg(r0):sat
+//CHECK: 8c80c0c2
+
+//A2_abs
+//Rd32=abs(Rs32)
+r2=abs(r0)
+//CHECK: 8c80c082
+
+//A2_abssat
+//Rd32=abs(Rs32):sat
+r2=abs(r0):sat
+//CHECK: 8c80c0a2
+
+//A2_vconj
+//Rdd32=vconj(Rss32):sat
+r3:2=vconj(r1:0):sat
+//CHECK: 8080c0e2
+
+//A2_negp
+//Rdd32=neg(Rss32)
+r3:2=neg(r1:0)
+//CHECK: 8080c0a2
+
+//A2_absp
+//Rdd32=abs(Rss32)
+r3:2=abs(r1:0)
+//CHECK: 8080c0c2
+
+//A2_max
+//Rd32=max(Rs32,Rt32)
+r2=max(r0,r0)
+//CHECK: d5c0c002
+
+//A2_maxu
+//Rd32=maxu(Rs32,Rt32)
+r2=maxu(r0,r0)
+//CHECK: d5c0c082
+
+//A2_min
+//Rd32=min(Rt32,Rs32)
+r2=min(r0,r0)
+//CHECK: d5a0c002
+
+//A2_minu
+//Rd32=minu(Rt32,Rs32)
+r2=minu(r0,r0)
+//CHECK: d5a0c082
+
+//A2_maxp
+//Rdd32=max(Rss32,Rtt32)
+r3:2=max(r1:0,r1:0)
+//CHECK: d3c0c082
+
+//A2_maxup
+//Rdd32=maxu(Rss32,Rtt32)
+r3:2=maxu(r1:0,r1:0)
+//CHECK: d3c0c0a2
+
+//A2_minp
+//Rdd32=min(Rtt32,Rss32)
+r3:2=min(r1:0,r1:0)
+//CHECK: d3a0c0c2
+
+//A2_minup
+//Rdd32=minu(Rtt32,Rss32)
+r3:2=minu(r1:0,r1:0)
+//CHECK: d3a0c0e2
+
+//A2_nop
+//nop
+nop
+//CHECK: 7f00c000
+
+//A2_tfr
+//Rd32=Rs32
+r2=r0
+//CHECK: 7060c002
+
+//A2_tfrsi
+//Rd32=#s16
+r2=#0x0
+//CHECK: 7800c002
+
+//A2_sxtb
+//Rd32=sxtb(Rs32)
+r2=sxtb(r0)
+//CHECK: 70a0c002
+
+//A2_zxth
+//Rd32=zxth(Rs32)
+r2=zxth(r0)
+//CHECK: 70c0c002
+
+//A2_sxth
+//Rd32=sxth(Rs32)
+r2=sxth(r0)
+//CHECK: 70e0c002
+
+//A2_combinew
+//Rdd32=combine(Rs32,Rt32)
+r3:2=combine(r0,r0)
+//CHECK: f500c002
+
+//A4_combineri
+//Rdd32=combine(Rs32,#s8)
+r3:2=combine(r0,#0x0)
+//CHECK: 7300e002
+
+//A4_combineir
+//Rdd32=combine(#s8,Rs32)
+r3:2=combine(#0x0,r0)
+//CHECK: 7320e002
+
+//A2_combineii
+//Rdd32=combine(#s8,#S8)
+r3:2=combine(#0x0,#0x0)
+//CHECK: 7c00c002
+
+//A4_combineii
+//Rdd32=combine(#s8,#U6)
+r3:2=combine(#0x0,#0x0)
+//CHECK: {{\w?}}
+
+//A2_combine_hh
+//Rd32=combine(Rt32.h,Rs32.h)
+r2=combine(r0.h,r0.h)
+//CHECK: f380c002
+
+//A2_combine_hl
+//Rd32=combine(Rt32.h,Rs32.l)
+r2=combine(r0.h,r0.l)
+//CHECK: f3a0c002
+
+//A2_combine_lh
+//Rd32=combine(Rt32.l,Rs32.h)
+r2=combine(r0.l,r0.h)
+//CHECK: f3c0c002
+
+//A2_combine_ll
+//Rd32=combine(Rt32.l,Rs32.l)
+r2=combine(r0.l,r0.l)
+//CHECK: f3e0c002
+
+//A2_tfril
+//Rx32.l=#u16
+r6.l=#0x0
+//CHECK: 7126c000
+
+//A2_tfrih
+//Rx32.h=#u16
+r6.h=#0x0
+//CHECK: 7226c000
+
+//A2_tfrcrr
+//Rd32=Cs32
+r2=c0
+//CHECK: 6a00c002
+
+//A2_tfrrcr
+//Cd32=Rs32
+c0=r0
+//CHECK: 6220c000
+
+//A4_tfrcpp
+//Rdd32=Css32
+r3:2=c1:0
+//CHECK: 6800c002
+
+//A4_tfrpcp
+//Cdd32=Rss32
+c1:0=r1:0
+//CHECK: 6320c000
+
+//A2_and
+//Rd32=and(Rs32,Rt32)
+r2=and(r0,r0)
+//CHECK: f100c002
+
+//A2_or
+//Rd32=or(Rs32,Rt32)
+r2=or(r0,r0)
+//CHECK: f120c002
+
+//A2_xor
+//Rd32=xor(Rs32,Rt32)
+r2=xor(r0,r0)
+//CHECK: f160c002
+
+//M2_xor_xacc
+//Rx32^=xor(Rs32,Rt32)
+r6^=xor(r0,r0)
+//CHECK: ef80c066
+
+//M4_xor_xacc
+//Rxx32^=xor(Rss32,Rtt32)
+r1:0^=xor(r1:0,r1:0)
+//CHECK: ca80c000
+
+//A4_andn
+//Rd32=and(Rt32,~Rs32)
+r2=and(r0,~r0)
+//CHECK: f180c002
+
+//A4_orn
+//Rd32=or(Rt32,~Rs32)
+r2=or(r0,~r0)
+//CHECK: f1a0c002
+
+//A4_andnp
+//Rdd32=and(Rtt32,~Rss32)
+r3:2=and(r1:0,~r1:0)
+//CHECK: d3e0c022
+
+//A4_ornp
+//Rdd32=or(Rtt32,~Rss32)
+r3:2=or(r1:0,~r1:0)
+//CHECK: d3e0c062
+
+//S4_addaddi
+//Rd32=add(Rs32,add(Ru32,#s6))
+r2=add(r0,add(r0,#0x0))
+//CHECK: db00c200
+
+//S4_subaddi
+//Rd32=add(Rs32,sub(#s6,Ru32))
+r2=add(r0,sub(#0x0,r0))
+//CHECK: db80c200
+
+//M4_and_and
+//Rx32&=and(Rs32,Rt32)
+r6&=and(r0,r0)
+//CHECK: ef40c006
+
+//M4_and_andn
+//Rx32&=and(Rs32,~Rt32)
+r6&=and(r0,~r0)
+//CHECK: ef20c026
+
+//M4_and_or
+//Rx32&=or(Rs32,Rt32)
+r6&=or(r0,r0)
+//CHECK: ef40c026
+
+//M4_and_xor
+//Rx32&=xor(Rs32,Rt32)
+r6&=xor(r0,r0)
+//CHECK: ef40c046
+
+//M4_or_and
+//Rx32|=and(Rs32,Rt32)
+r6|=and(r0,r0)
+//CHECK: ef40c066
+
+//M4_or_andn
+//Rx32|=and(Rs32,~Rt32)
+r6|=and(r0,~r0)
+//CHECK: ef20c006
+
+//M4_or_or
+//Rx32|=or(Rs32,Rt32)
+r6|=or(r0,r0)
+//CHECK: efc0c006
+
+//M4_or_xor
+//Rx32|=xor(Rs32,Rt32)
+r6|=xor(r0,r0)
+//CHECK: efc0c026
+
+//S4_or_andix
+//Rx32=or(Ru32,and(Rx32,#s10))
+r6=or(r0,and(r6,#0x0))
+//CHECK: da46c000
+
+//S4_or_andi
+//Rx32|=and(Rs32,#s10)
+r6|=and(r0,#0x0)
+//CHECK: da00c006
+
+//S4_or_ori
+//Rx32|=or(Rs32,#s10)
+r6|=or(r0,#0x0)
+//CHECK: da80c006
+
+//M4_xor_and
+//Rx32^=and(Rs32,Rt32)
+r6^=and(r0,r0)
+//CHECK: efc0c046
+
+//M4_xor_or
+//Rx32^=or(Rs32,Rt32)
+r6^=or(r0,r0)
+//CHECK: efc0c066
+
+//M4_xor_andn
+//Rx32^=and(Rs32,~Rt32)
+r6^=and(r0,~r0)
+//CHECK: ef20c046
+
+//A2_subri
+//Rd32=sub(#s10,Rs32)
+r2=sub(#0x0,r0)
+//CHECK: 7640c002
+
+//A2_andir
+//Rd32=and(Rs32,#s10)
+r2=and(r0,#0x0)
+//CHECK: 7600c002
+
+//A2_orir
+//Rd32=or(Rs32,#s10)
+r2=or(r0,#0x0)
+//CHECK: 7680c002
+
+//A2_andp
+//Rdd32=and(Rss32,Rtt32)
+r3:2=and(r1:0,r1:0)
+//CHECK: d3e0c002
+
+//A2_orp
+//Rdd32=or(Rss32,Rtt32)
+r3:2=or(r1:0,r1:0)
+//CHECK: d3e0c042
+
+//A2_xorp
+//Rdd32=xor(Rss32,Rtt32)
+r3:2=xor(r1:0,r1:0)
+//CHECK: d3e0c082
+
+//A2_notp
+//Rdd32=not(Rss32)
+r3:2=not(r1:0)
+//CHECK: 8080c082
+
+//A2_sxtw
+//Rdd32=sxtw(Rs32)
+r3:2=sxtw(r0)
+//CHECK: 8440c002
+
+//A2_sat
+//Rd32=sat(Rss32)
+r2=sat(r1:0)
+//CHECK: 88c0c002
+
+//A2_roundsat
+//Rd32=round(Rss32):sat
+r2=round(r1:0):sat
+//CHECK: 88c0c022
+
+//A2_sath
+//Rd32=sath(Rs32)
+r2=sath(r0)
+//CHECK: 8cc0c082
+
+//A2_satuh
+//Rd32=satuh(Rs32)
+r2=satuh(r0)
+//CHECK: 8cc0c0a2
+
+//A2_satub
+//Rd32=satub(Rs32)
+r2=satub(r0)
+//CHECK: 8cc0c0c2
+
+//A2_satb
+//Rd32=satb(Rs32)
+r2=satb(r0)
+//CHECK: 8cc0c0e2
+
+//A2_vaddub
+//Rdd32=vaddub(Rss32,Rtt32)
+r3:2=vaddub(r1:0,r1:0)
+//CHECK: d300c002
+
+//A2_vaddubs
+//Rdd32=vaddub(Rss32,Rtt32):sat
+r3:2=vaddub(r1:0,r1:0):sat
+//CHECK: d300c022
+
+//A2_vaddh
+//Rdd32=vaddh(Rss32,Rtt32)
+r3:2=vaddh(r1:0,r1:0)
+//CHECK: d300c042
+
+//A2_vaddhs
+//Rdd32=vaddh(Rss32,Rtt32):sat
+r3:2=vaddh(r1:0,r1:0):sat
+//CHECK: d300c062
+
+//A2_vadduhs
+//Rdd32=vadduh(Rss32,Rtt32):sat
+r3:2=vadduh(r1:0,r1:0):sat
+//CHECK: d300c082
+
+//A5_vaddhubs
+//Rd32=vaddhub(Rss32,Rtt32):sat
+r2=vaddhub(r1:0,r1:0):sat
+//CHECK: c140c022
+
+//A2_vaddw
+//Rdd32=vaddw(Rss32,Rtt32)
+r3:2=vaddw(r1:0,r1:0)
+//CHECK: d300c0a2
+
+//A2_vaddws
+//Rdd32=vaddw(Rss32,Rtt32):sat
+r3:2=vaddw(r1:0,r1:0):sat
+//CHECK: d300c0c2
+
+//S4_vxaddsubw
+//Rdd32=vxaddsubw(Rss32,Rtt32):sat
+r3:2=vxaddsubw(r1:0,r1:0):sat
+//CHECK: c140c002
+
+//S4_vxsubaddw
+//Rdd32=vxsubaddw(Rss32,Rtt32):sat
+r3:2=vxsubaddw(r1:0,r1:0):sat
+//CHECK: c140c042
+
+//S4_vxaddsubh
+//Rdd32=vxaddsubh(Rss32,Rtt32):sat
+r3:2=vxaddsubh(r1:0,r1:0):sat
+//CHECK: c140c082
+
+//S4_vxsubaddh
+//Rdd32=vxsubaddh(Rss32,Rtt32):sat
+r3:2=vxsubaddh(r1:0,r1:0):sat
+//CHECK: c140c0c2
+
+//S4_vxaddsubhr
+//Rdd32=vxaddsubh(Rss32,Rtt32):rnd:>>1:sat
+r3:2=vxaddsubh(r1:0,r1:0):rnd:>>1:sat
+//CHECK: c1c0c002
+
+//S4_vxsubaddhr
+//Rdd32=vxsubaddh(Rss32,Rtt32):rnd:>>1:sat
+r3:2=vxsubaddh(r1:0,r1:0):rnd:>>1:sat
+//CHECK: c1c0c042
+
+//A2_svavgh
+//Rd32=vavgh(Rs32,Rt32)
+r2=vavgh(r0,r0)
+//CHECK: f700c002
+
+//A2_svavghs
+//Rd32=vavgh(Rs32,Rt32):rnd
+r2=vavgh(r0,r0):rnd
+//CHECK: f720c002
+
+//A2_svnavgh
+//Rd32=vnavgh(Rt32,Rs32)
+r2=vnavgh(r0,r0)
+//CHECK: f760c002
+
+//A2_svaddh
+//Rd32=vaddh(Rs32,Rt32)
+r2=vaddh(r0,r0)
+//CHECK: f600c002
+
+//A2_svaddhs
+//Rd32=vaddh(Rs32,Rt32):sat
+r2=vaddh(r0,r0):sat
+//CHECK: f620c002
+
+//A2_svadduhs
+//Rd32=vadduh(Rs32,Rt32):sat
+r2=vadduh(r0,r0):sat
+//CHECK: f660c002
+
+//A2_svsubh
+//Rd32=vsubh(Rt32,Rs32)
+r2=vsubh(r0,r0)
+//CHECK: f680c002
+
+//A2_svsubhs
+//Rd32=vsubh(Rt32,Rs32):sat
+r2=vsubh(r0,r0):sat
+//CHECK: f6a0c002
+
+//A2_svsubuhs
+//Rd32=vsubuh(Rt32,Rs32):sat
+r2=vsubuh(r0,r0):sat
+//CHECK: f6e0c002
+
+//A2_vraddub
+//Rdd32=vraddub(Rss32,Rtt32)
+r3:2=vraddub(r1:0,r1:0)
+//CHECK: e840c022
+
+//A2_vraddub_acc
+//Rxx32+=vraddub(Rss32,Rtt32)
+r1:0+=vraddub(r1:0,r1:0)
+//CHECK: ea40c020
+
+//M2_vraddh
+//Rd32=vraddh(Rss32,Rtt32)
+r2=vraddh(r1:0,r1:0)
+//CHECK: e920c0e2
+
+//M2_vradduh
+//Rd32=vradduh(Rss32,Rtt32)
+r2=vradduh(r1:0,r1:0)
+//CHECK: e900c022
+
+//A2_vsubub
+//Rdd32=vsubub(Rtt32,Rss32)
+r3:2=vsubub(r1:0,r1:0)
+//CHECK: d320c002
+
+//A2_vsububs
+//Rdd32=vsubub(Rtt32,Rss32):sat
+r3:2=vsubub(r1:0,r1:0):sat
+//CHECK: d320c022
+
+//A2_vsubh
+//Rdd32=vsubh(Rtt32,Rss32)
+r3:2=vsubh(r1:0,r1:0)
+//CHECK: d320c042
+
+//A2_vsubhs
+//Rdd32=vsubh(Rtt32,Rss32):sat
+r3:2=vsubh(r1:0,r1:0):sat
+//CHECK: d320c062
+
+//A2_vsubuhs
+//Rdd32=vsubuh(Rtt32,Rss32):sat
+r3:2=vsubuh(r1:0,r1:0):sat
+//CHECK: d320c082
+
+//A2_vsubw
+//Rdd32=vsubw(Rtt32,Rss32)
+r3:2=vsubw(r1:0,r1:0)
+//CHECK: d320c0a2
+
+//A2_vsubws
+//Rdd32=vsubw(Rtt32,Rss32):sat
+r3:2=vsubw(r1:0,r1:0):sat
+//CHECK: d320c0c2
+
+//A2_vabsh
+//Rdd32=vabsh(Rss32)
+r3:2=vabsh(r1:0)
+//CHECK: 8040c082
+
+//A2_vabshsat
+//Rdd32=vabsh(Rss32):sat
+r3:2=vabsh(r1:0):sat
+//CHECK: 8040c0a2
+
+//A2_vabsw
+//Rdd32=vabsw(Rss32)
+r3:2=vabsw(r1:0)
+//CHECK: 8040c0c2
+
+//A2_vabswsat
+//Rdd32=vabsw(Rss32):sat
+r3:2=vabsw(r1:0):sat
+//CHECK: 8040c0e2
+
+//M2_vabsdiffw
+//Rdd32=vabsdiffw(Rtt32,Rss32)
+r3:2=vabsdiffw(r1:0,r1:0)
+//CHECK: e820c002
+
+//M2_vabsdiffh
+//Rdd32=vabsdiffh(Rtt32,Rss32)
+r3:2=vabsdiffh(r1:0,r1:0)
+//CHECK: e860c002
+
+//M6_vabsdiffb
+//Rdd32=vabsdiffb(Rtt32,Rss32)
+r3:2=vabsdiffb(r1:0,r1:0)
+//CHECK: e8e0c002
+
+//M6_vabsdiffub
+//Rdd32=vabsdiffub(Rtt32,Rss32)
+r3:2=vabsdiffub(r1:0,r1:0)
+//CHECK: e8a0c002
+
+//A2_vrsadub
+//Rdd32=vrsadub(Rss32,Rtt32)
+r3:2=vrsadub(r1:0,r1:0)
+//CHECK: e840c042
+
+//A2_vrsadub_acc
+//Rxx32+=vrsadub(Rss32,Rtt32)
+r1:0+=vrsadub(r1:0,r1:0)
+//CHECK: ea40c040
+
+//A2_vavgub
+//Rdd32=vavgub(Rss32,Rtt32)
+r3:2=vavgub(r1:0,r1:0)
+//CHECK: d340c002
+
+//A2_vavguh
+//Rdd32=vavguh(Rss32,Rtt32)
+r3:2=vavguh(r1:0,r1:0)
+//CHECK: d340c0a2
+
+//A2_vavgh
+//Rdd32=vavgh(Rss32,Rtt32)
+r3:2=vavgh(r1:0,r1:0)
+//CHECK: d340c042
+
+//A2_vnavgh
+//Rdd32=vnavgh(Rtt32,Rss32)
+r3:2=vnavgh(r1:0,r1:0)
+//CHECK: d380c002
+
+//A2_vavgw
+//Rdd32=vavgw(Rss32,Rtt32)
+r3:2=vavgw(r1:0,r1:0)
+//CHECK: d360c002
+
+//A2_vnavgw
+//Rdd32=vnavgw(Rtt32,Rss32)
+r3:2=vnavgw(r1:0,r1:0)
+//CHECK: d380c062
+
+//A2_vavgwr
+//Rdd32=vavgw(Rss32,Rtt32):rnd
+r3:2=vavgw(r1:0,r1:0):rnd
+//CHECK: d360c022
+
+//A2_vnavgwr
+//Rdd32=vnavgw(Rtt32,Rss32):rnd:sat
+r3:2=vnavgw(r1:0,r1:0):rnd:sat
+//CHECK: d380c082
+
+//A2_vavgwcr
+//Rdd32=vavgw(Rss32,Rtt32):crnd
+r3:2=vavgw(r1:0,r1:0):crnd
+//CHECK: d360c042
+
+//A2_vnavgwcr
+//Rdd32=vnavgw(Rtt32,Rss32):crnd:sat
+r3:2=vnavgw(r1:0,r1:0):crnd:sat
+//CHECK: d380c0c2
+
+//A2_vavghcr
+//Rdd32=vavgh(Rss32,Rtt32):crnd
+r3:2=vavgh(r1:0,r1:0):crnd
+//CHECK: d340c082
+
+//A2_vnavghcr
+//Rdd32=vnavgh(Rtt32,Rss32):crnd:sat
+r3:2=vnavgh(r1:0,r1:0):crnd:sat
+//CHECK: d380c042
+
+//A2_vavguw
+//Rdd32=vavguw(Rss32,Rtt32)
+r3:2=vavguw(r1:0,r1:0)
+//CHECK: d360c062
+
+//A2_vavguwr
+//Rdd32=vavguw(Rss32,Rtt32):rnd
+r3:2=vavguw(r1:0,r1:0):rnd
+//CHECK: d360c082
+
+//A2_vavgubr
+//Rdd32=vavgub(Rss32,Rtt32):rnd
+r3:2=vavgub(r1:0,r1:0):rnd
+//CHECK: d340c022
+
+//A2_vavguhr
+//Rdd32=vavguh(Rss32,Rtt32):rnd
+r3:2=vavguh(r1:0,r1:0):rnd
+//CHECK: d340c0c2
+
+//A2_vavghr
+//Rdd32=vavgh(Rss32,Rtt32):rnd
+r3:2=vavgh(r1:0,r1:0):rnd
+//CHECK: d340c062
+
+//A2_vnavghr
+//Rdd32=vnavgh(Rtt32,Rss32):rnd:sat
+r3:2=vnavgh(r1:0,r1:0):rnd:sat
+//CHECK: d380c022
+
+//A4_round_ri
+//Rd32=round(Rs32,#u5)
+r2=round(r0,#0x0)
+//CHECK: 8ce0c082
+
+//A4_round_rr
+//Rd32=round(Rs32,Rt32)
+r2=round(r0,r0)
+//CHECK: c6c0c082
+
+//A4_round_ri_sat
+//Rd32=round(Rs32,#u5):sat
+r2=round(r0,#0x0):sat
+//CHECK: 8ce0c0c2
+
+//A4_round_rr_sat
+//Rd32=round(Rs32,Rt32):sat
+r2=round(r0,r0):sat
+//CHECK: c6c0c0c2
+
+//A4_cround_ri
+//Rd32=cround(Rs32,#u5)
+r2=cround(r0,#0x0)
+//CHECK: 8ce0c002
+
+//A4_cround_rr
+//Rd32=cround(Rs32,Rt32)
+r2=cround(r0,r0)
+//CHECK: c6c0c002
+
+//A7_croundd_ri
+//Rdd32=cround(Rss32,#u6)
+r3:2=cround(r1:0,#0x0)
+//CHECK: 8ce0c042
+
+//A7_croundd_rr
+//Rdd32=cround(Rss32,Rt32)
+r3:2=cround(r1:0,r0)
+//CHECK: c6c0c042
+
+//A7_clip
+//Rd32=clip(Rs32,#u5)
+r2=clip(r0,#0x0)
+//CHECK: 88c0c0a2
+
+//A7_vclip
+//Rdd32=vclip(Rss32,#u5)
+r3:2=vclip(r1:0,#0x0)
+//CHECK: 88c0c0c2
+
+//A4_vrminh
+//Rxx32=vrminh(Rss32,Ru32)
+r1:0=vrminh(r1:0,r0)
+//CHECK: cb20c0a0
+
+//A4_vrmaxh
+//Rxx32=vrmaxh(Rss32,Ru32)
+r1:0=vrmaxh(r1:0,r0)
+//CHECK: cb20c020
+
+//A4_vrminuh
+//Rxx32=vrminuh(Rss32,Ru32)
+r1:0=vrminuh(r1:0,r0)
+//CHECK: cb20e0a0
+
+//A4_vrmaxuh
+//Rxx32=vrmaxuh(Rss32,Ru32)
+r1:0=vrmaxuh(r1:0,r0)
+//CHECK: cb20e020
+
+//A4_vrminw
+//Rxx32=vrminw(Rss32,Ru32)
+r1:0=vrminw(r1:0,r0)
+//CHECK: cb20c0c0
+
+//A4_vrmaxw
+//Rxx32=vrmaxw(Rss32,Ru32)
+r1:0=vrmaxw(r1:0,r0)
+//CHECK: cb20c040
+
+//A4_vrminuw
+//Rxx32=vrminuw(Rss32,Ru32)
+r1:0=vrminuw(r1:0,r0)
+//CHECK: cb20e0c0
+
+//A4_vrmaxuw
+//Rxx32=vrmaxuw(Rss32,Ru32)
+r1:0=vrmaxuw(r1:0,r0)
+//CHECK: cb20e040
+
+//A2_vminb
+//Rdd32=vminb(Rtt32,Rss32)
+r3:2=vminb(r1:0,r1:0)
+//CHECK: d3c0c0e2
+
+//A2_vmaxb
+//Rdd32=vmaxb(Rtt32,Rss32)
+r3:2=vmaxb(r1:0,r1:0)
+//CHECK: d3c0c0c2
+
+//A2_vminub
+//Rdd32=vminub(Rtt32,Rss32)
+r3:2=vminub(r1:0,r1:0)
+//CHECK: d3a0c002
+
+//A2_vmaxub
+//Rdd32=vmaxub(Rtt32,Rss32)
+r3:2=vmaxub(r1:0,r1:0)
+//CHECK: d3c0c002
+
+//A2_vminh
+//Rdd32=vminh(Rtt32,Rss32)
+r3:2=vminh(r1:0,r1:0)
+//CHECK: d3a0c022
+
+//A2_vmaxh
+//Rdd32=vmaxh(Rtt32,Rss32)
+r3:2=vmaxh(r1:0,r1:0)
+//CHECK: d3c0c022
+
+//A2_vminuh
+//Rdd32=vminuh(Rtt32,Rss32)
+r3:2=vminuh(r1:0,r1:0)
+//CHECK: d3a0c042
+
+//A2_vmaxuh
+//Rdd32=vmaxuh(Rtt32,Rss32)
+r3:2=vmaxuh(r1:0,r1:0)
+//CHECK: d3c0c042
+
+//A2_vminw
+//Rdd32=vminw(Rtt32,Rss32)
+r3:2=vminw(r1:0,r1:0)
+//CHECK: d3a0c062
+
+//A2_vmaxw
+//Rdd32=vmaxw(Rtt32,Rss32)
+r3:2=vmaxw(r1:0,r1:0)
+//CHECK: d3c0c062
+
+//A2_vminuw
+//Rdd32=vminuw(Rtt32,Rss32)
+r3:2=vminuw(r1:0,r1:0)
+//CHECK: d3a0c082
+
+//A2_vmaxuw
+//Rdd32=vmaxuw(Rtt32,Rss32)
+r3:2=vmaxuw(r1:0,r1:0)
+//CHECK: d3a0c0a2
+
+//A5_ACS
+//Rxx32,Pe4=vacsh(Rss32,Rtt32)
+r1:0,p0=vacsh(r1:0,r1:0)
+//CHECK: eaa0c000
+
+//A6_vminub_RdP
+//Rdd32,Pe4=vminub(Rtt32,Rss32)
+r3:2,p0=vminub(r1:0,r1:0)
+//CHECK: eae0c002
+
+//A4_modwrapu
+//Rd32=modwrap(Rs32,Rt32)
+r2=modwrap(r0,r0)
+//CHECK: d3e0c0e2
+
+//J2_jump
+//jump #r22:2
+jump #0x0
+//CHECK: 5800c000
+
+//J2_jumpr
+//jumpr Rs32
+jumpr r0
+//CHECK: 5280c000
+
+//J2_jumprh
+//jumprh Rs32
+jumprh r0
+//CHECK: 52c0c000
+
+//J2_jumpt
+//if (Pu4) jump:nt #r15:2
+if (p0) jump:nt #0x0
+//CHECK: 5c00c000
+
+//J2_jumpf
+//if (!Pu4) jump:nt #r15:2
+if (!p0) jump:nt #0x0
+//CHECK: 5c20c000
+
+//J2_jumptpt
+//if (Pu4) jump:t #r15:2
+if (p0) jump:t #0x0
+//CHECK: 5c00d000
+
+//J2_jumpfpt
+//if (!Pu4) jump:t #r15:2
+if (!p0) jump:t #0x0
+//CHECK: 5c20d000
+
+//J2_jumprt
+//if (Pu4) jumpr:nt Rs32
+if (p0) jumpr:nt r0
+//CHECK: 5340c000
+
+//J2_jumprf
+//if (!Pu4) jumpr:nt Rs32
+if (!p0) jumpr:nt r0
+//CHECK: 5360c000
+
+//J2_jumprtpt
+//if (Pu4) jumpr:t Rs32
+if (p0) jumpr:t r0
+//CHECK: 5340d000
+
+//J2_jumprfpt
+//if (!Pu4) jumpr:t Rs32
+if (!p0) jumpr:t r0
+//CHECK: 5360d000
+
+//J2_jumptnew
+//if (Pu4.new) jump:nt #r15:2
+{
+    p0=p1
+    if (p0.new) jump:nt #0x0
+}
+//CHECK: 5c00c800
+
+//J2_jumpfnew
+//if (!Pu4.new) jump:nt #r15:2
+{
+    p0=p1
+    if (!p0.new) jump:nt #0x0
+}
+//CHECK: 5c20c800
+
+//J2_jumptnewpt
+//if (Pu4.new) jump:t #r15:2
+{
+    p0=p1
+    if (p0.new) jump:t #0x0
+}
+//CHECK: 5c00d800
+
+//J2_jumpfnewpt
+//if (!Pu4.new) jump:t #r15:2
+{
+    p0=p1
+    if (!p0.new) jump:t #0x0
+}
+//CHECK: 5c20d800
+
+//J2_jumprtnew
+//if (Pu4.new) jumpr:nt Rs32
+{
+    p0=p1
+    if (p0.new) jumpr:nt r0
+}
+//CHECK: 5340c800
+
+//J2_jumprfnew
+//if (!Pu4.new) jumpr:nt Rs32
+{
+    p0=p1
+    if (!p0.new) jumpr:nt r0
+}
+//CHECK: 5360c800
+
+//J2_jumprtnewpt
+//if (Pu4.new) jumpr:t Rs32
+{
+    p0=p1
+    if (p0.new) jumpr:t r0
+}
+//CHECK: 5340d800
+
+//J2_jumprfnewpt
+//if (!Pu4.new) jumpr:t Rs32
+{
+    p0=p1
+    if (!p0.new) jumpr:t r0
+}
+//CHECK: 5360d800
+
+//J4_hintjumpr
+//hintjr(Rs32)
+hintjr(r0)
+//CHECK: 52a0c000
+
+//J2_jumprz
+//if (Rs32!=#0) jump:nt #r13:2
+if (r0!=#0) jump:nt #0x0
+//CHECK: 6100c000
+
+//J2_jumprnz
+//if (Rs32==#0) jump:nt #r13:2
+if (r0==#0) jump:nt #0x0
+//CHECK: 6180c000
+
+//J2_jumprzpt
+//if (Rs32!=#0) jump:t #r13:2
+if (r0!=#0) jump:t #0x0
+//CHECK: 6100d000
+
+//J2_jumprnzpt
+//if (Rs32==#0) jump:t #r13:2
+if (r0==#0) jump:t #0x0
+//CHECK: 6180d000
+
+//J2_jumprgtez
+//if (Rs32>=#0) jump:nt #r13:2
+if (r0>=#0) jump:nt #0x0
+//CHECK: 6140c000
+
+//J2_jumprgtezpt
+//if (Rs32>=#0) jump:t #r13:2
+if (r0>=#0) jump:t #0x0
+//CHECK: 6140d000
+
+//J2_jumprltez
+//if (Rs32<=#0) jump:nt #r13:2
+if (r0<=#0) jump:nt #0x0
+//CHECK: 61c0c000
+
+//J2_jumprltezpt
+//if (Rs32<=#0) jump:t #r13:2
+if (r0<=#0) jump:t #0x0
+//CHECK: 61c0d000
+
+//J4_cmpeqi_tp0_jump_nt
+//p0=cmp.eq(Rs16,#U5); if (p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.eq(r0,#0x0); if (p0.new) jump:nt #0x0
+}
+//CHECK: 1000c000
+
+//J4_cmpeqi_fp0_jump_nt
+//p0=cmp.eq(Rs16,#U5); if (!p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.eq(r0,#0x0); if (!p0.new) jump:nt #0x0
+}
+//CHECK: 1040c000
+
+//J4_cmpeqi_tp0_jump_t
+//p0=cmp.eq(Rs16,#U5); if (p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.eq(r0,#0x0); if (p0.new) jump:t #0x0
+}
+//CHECK: 1000e000
+
+//J4_cmpeqi_fp0_jump_t
+//p0=cmp.eq(Rs16,#U5); if (!p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.eq(r0,#0x0); if (!p0.new) jump:t #0x0
+}
+//CHECK: 1040e000
+
+//J4_cmpeqi_tp1_jump_nt
+//p1=cmp.eq(Rs16,#U5); if (p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.eq(r0,#0x0); if (p1.new) jump:nt #0x0
+}
+//CHECK: 1200c000
+
+//J4_cmpeqi_fp1_jump_nt
+//p1=cmp.eq(Rs16,#U5); if (!p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.eq(r0,#0x0); if (!p1.new) jump:nt #0x0
+}
+//CHECK: 1240c000
+
+//J4_cmpeqi_tp1_jump_t
+//p1=cmp.eq(Rs16,#U5); if (p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.eq(r0,#0x0); if (p1.new) jump:t #0x0
+}
+//CHECK: 1200e000
+
+//J4_cmpeqi_fp1_jump_t
+//p1=cmp.eq(Rs16,#U5); if (!p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.eq(r0,#0x0); if (!p1.new) jump:t #0x0
+}
+//CHECK: 1240e000
+
+//J4_cmpgti_tp0_jump_nt
+//p0=cmp.gt(Rs16,#U5); if (p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.gt(r0,#0x0); if (p0.new) jump:nt #0x0
+}
+//CHECK: 1080c000
+
+//J4_cmpgti_fp0_jump_nt
+//p0=cmp.gt(Rs16,#U5); if (!p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.gt(r0,#0x0); if (!p0.new) jump:nt #0x0
+}
+//CHECK: 10c0c000
+
+//J4_cmpgti_tp0_jump_t
+//p0=cmp.gt(Rs16,#U5); if (p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.gt(r0,#0x0); if (p0.new) jump:t #0x0
+}
+//CHECK: 1080e000
+
+//J4_cmpgti_fp0_jump_t
+//p0=cmp.gt(Rs16,#U5); if (!p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.gt(r0,#0x0); if (!p0.new) jump:t #0x0
+}
+//CHECK: 10c0e000
+
+//J4_cmpgti_tp1_jump_nt
+//p1=cmp.gt(Rs16,#U5); if (p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.gt(r0,#0x0); if (p1.new) jump:nt #0x0
+}
+//CHECK: 1280c000
+
+//J4_cmpgti_fp1_jump_nt
+//p1=cmp.gt(Rs16,#U5); if (!p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.gt(r0,#0x0); if (!p1.new) jump:nt #0x0
+}
+//CHECK: 12c0c000
+
+//J4_cmpgti_tp1_jump_t
+//p1=cmp.gt(Rs16,#U5); if (p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.gt(r0,#0x0); if (p1.new) jump:t #0x0
+}
+//CHECK: 1280e000
+
+//J4_cmpgti_fp1_jump_t
+//p1=cmp.gt(Rs16,#U5); if (!p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.gt(r0,#0x0); if (!p1.new) jump:t #0x0
+}
+//CHECK: 12c0e000
+
+//J4_cmpgtui_tp0_jump_nt
+//p0=cmp.gtu(Rs16,#U5); if (p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.gtu(r0,#0x0); if (p0.new) jump:nt #0x0
+}
+//CHECK: 1100c000
+
+//J4_cmpgtui_fp0_jump_nt
+//p0=cmp.gtu(Rs16,#U5); if (!p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.gtu(r0,#0x0); if (!p0.new) jump:nt #0x0
+}
+//CHECK: 1140c000
+
+//J4_cmpgtui_tp0_jump_t
+//p0=cmp.gtu(Rs16,#U5); if (p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.gtu(r0,#0x0); if (p0.new) jump:t #0x0
+}
+//CHECK: 1100e000
+
+//J4_cmpgtui_fp0_jump_t
+//p0=cmp.gtu(Rs16,#U5); if (!p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.gtu(r0,#0x0); if (!p0.new) jump:t #0x0
+}
+//CHECK: 1140e000
+
+//J4_cmpgtui_tp1_jump_nt
+//p1=cmp.gtu(Rs16,#U5); if (p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.gtu(r0,#0x0); if (p1.new) jump:nt #0x0
+}
+//CHECK: 1300c000
+
+//J4_cmpgtui_fp1_jump_nt
+//p1=cmp.gtu(Rs16,#U5); if (!p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.gtu(r0,#0x0); if (!p1.new) jump:nt #0x0
+}
+//CHECK: 1340c000
+
+//J4_cmpgtui_tp1_jump_t
+//p1=cmp.gtu(Rs16,#U5); if (p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.gtu(r0,#0x0); if (p1.new) jump:t #0x0
+}
+//CHECK: 1300e000
+
+//J4_cmpgtui_fp1_jump_t
+//p1=cmp.gtu(Rs16,#U5); if (!p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.gtu(r0,#0x0); if (!p1.new) jump:t #0x0
+}
+//CHECK: 1340e000
+
+//J4_cmpeqn1_tp0_jump_nt
+//p0=cmp.eq(Rs16,#-1); if (p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.eq(r0,#-1); if (p0.new) jump:nt #0x0
+}
+//CHECK: 1180c000
+
+//J4_cmpeqn1_fp0_jump_nt
+//p0=cmp.eq(Rs16,#-1); if (!p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.eq(r0,#-1); if (!p0.new) jump:nt #0x0
+}
+//CHECK: 11c0c000
+
+//J4_cmpeqn1_tp0_jump_t
+//p0=cmp.eq(Rs16,#-1); if (p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.eq(r0,#-1); if (p0.new) jump:t #0x0
+}
+//CHECK: 1180e000
+
+//J4_cmpeqn1_fp0_jump_t
+//p0=cmp.eq(Rs16,#-1); if (!p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.eq(r0,#-1); if (!p0.new) jump:t #0x0
+}
+//CHECK: 11c0e000
+
+//J4_cmpeqn1_tp1_jump_nt
+//p1=cmp.eq(Rs16,#-1); if (p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.eq(r0,#-1); if (p1.new) jump:nt #0x0
+}
+//CHECK: 1380c000
+
+//J4_cmpeqn1_fp1_jump_nt
+//p1=cmp.eq(Rs16,#-1); if (!p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.eq(r0,#-1); if (!p1.new) jump:nt #0x0
+}
+//CHECK: 13c0c000
+
+//J4_cmpeqn1_tp1_jump_t
+//p1=cmp.eq(Rs16,#-1); if (p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.eq(r0,#-1); if (p1.new) jump:t #0x0
+}
+//CHECK: 1380e000
+
+//J4_cmpeqn1_fp1_jump_t
+//p1=cmp.eq(Rs16,#-1); if (!p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.eq(r0,#-1); if (!p1.new) jump:t #0x0
+}
+//CHECK: 13c0e000
+
+//J4_cmpgtn1_tp0_jump_nt
+//p0=cmp.gt(Rs16,#-1); if (p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.gt(r0,#-1); if (p0.new) jump:nt #0x0
+}
+//CHECK: 1180c100
+
+//J4_cmpgtn1_fp0_jump_nt
+//p0=cmp.gt(Rs16,#-1); if (!p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.gt(r0,#-1); if (!p0.new) jump:nt #0x0
+}
+//CHECK: 11c0c100
+
+//J4_cmpgtn1_tp0_jump_t
+//p0=cmp.gt(Rs16,#-1); if (p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.gt(r0,#-1); if (p0.new) jump:t #0x0
+}
+//CHECK: 1180e100
+
+//J4_cmpgtn1_fp0_jump_t
+//p0=cmp.gt(Rs16,#-1); if (!p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.gt(r0,#-1); if (!p0.new) jump:t #0x0
+}
+//CHECK: 11c0e100
+
+//J4_cmpgtn1_tp1_jump_nt
+//p1=cmp.gt(Rs16,#-1); if (p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.gt(r0,#-1); if (p1.new) jump:nt #0x0
+}
+//CHECK: 1380c100
+
+//J4_cmpgtn1_fp1_jump_nt
+//p1=cmp.gt(Rs16,#-1); if (!p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.gt(r0,#-1); if (!p1.new) jump:nt #0x0
+}
+//CHECK: 13c0c100
+
+//J4_cmpgtn1_tp1_jump_t
+//p1=cmp.gt(Rs16,#-1); if (p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.gt(r0,#-1); if (p1.new) jump:t #0x0
+}
+//CHECK: 1380e100
+
+//J4_cmpgtn1_fp1_jump_t
+//p1=cmp.gt(Rs16,#-1); if (!p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.gt(r0,#-1); if (!p1.new) jump:t #0x0
+}
+//CHECK: 13c0e100
+
+//J4_tstbit0_tp0_jump_nt
+//p0=tstbit(Rs16,#0); if (p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=tstbit(r0,#0); if (p0.new) jump:nt #0x0
+}
+//CHECK: 1180c300
+
+//J4_tstbit0_fp0_jump_nt
+//p0=tstbit(Rs16,#0); if (!p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=tstbit(r0,#0); if (!p0.new) jump:nt #0x0
+}
+//CHECK: 11c0c300
+
+//J4_tstbit0_tp0_jump_t
+//p0=tstbit(Rs16,#0); if (p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=tstbit(r0,#0); if (p0.new) jump:t #0x0
+}
+//CHECK: 1180e300
+
+//J4_tstbit0_fp0_jump_t
+//p0=tstbit(Rs16,#0); if (!p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=tstbit(r0,#0); if (!p0.new) jump:t #0x0
+}
+//CHECK: 11c0e300
+
+//J4_tstbit0_tp1_jump_nt
+//p1=tstbit(Rs16,#0); if (p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=tstbit(r0,#0); if (p1.new) jump:nt #0x0
+}
+//CHECK: 1380c300
+
+//J4_tstbit0_fp1_jump_nt
+//p1=tstbit(Rs16,#0); if (!p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=tstbit(r0,#0); if (!p1.new) jump:nt #0x0
+}
+//CHECK: 13c0c300
+
+//J4_tstbit0_tp1_jump_t
+//p1=tstbit(Rs16,#0); if (p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=tstbit(r0,#0); if (p1.new) jump:t #0x0
+}
+//CHECK: 1380e300
+
+//J4_tstbit0_fp1_jump_t
+//p1=tstbit(Rs16,#0); if (!p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=tstbit(r0,#0); if (!p1.new) jump:t #0x0
+}
+//CHECK: 13c0e300
+
+//J4_cmpeq_tp0_jump_nt
+//p0=cmp.eq(Rs16,Rt16); if (p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.eq(r0,r0); if (p0.new) jump:nt #0x0
+}
+//CHECK: 1400c000
+
+//J4_cmpeq_fp0_jump_nt
+//p0=cmp.eq(Rs16,Rt16); if (!p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.eq(r0,r0); if (!p0.new) jump:nt #0x0
+}
+//CHECK: 1440c000
+
+//J4_cmpeq_tp0_jump_t
+//p0=cmp.eq(Rs16,Rt16); if (p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.eq(r0,r0); if (p0.new) jump:t #0x0
+}
+//CHECK: 1400e000
+
+//J4_cmpeq_fp0_jump_t
+//p0=cmp.eq(Rs16,Rt16); if (!p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.eq(r0,r0); if (!p0.new) jump:t #0x0
+}
+//CHECK: 1440e000
+
+//J4_cmpeq_tp1_jump_nt
+//p1=cmp.eq(Rs16,Rt16); if (p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.eq(r0,r0); if (p1.new) jump:nt #0x0
+}
+//CHECK: 1400d000
+
+//J4_cmpeq_fp1_jump_nt
+//p1=cmp.eq(Rs16,Rt16); if (!p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.eq(r0,r0); if (!p1.new) jump:nt #0x0
+}
+//CHECK: 1440d000
+
+//J4_cmpeq_tp1_jump_t
+//p1=cmp.eq(Rs16,Rt16); if (p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.eq(r0,r0); if (p1.new) jump:t #0x0
+}
+//CHECK: 1400f000
+
+//J4_cmpeq_fp1_jump_t
+//p1=cmp.eq(Rs16,Rt16); if (!p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.eq(r0,r0); if (!p1.new) jump:t #0x0
+}
+//CHECK: 1440f000
+
+//J4_cmpgt_tp0_jump_nt
+//p0=cmp.gt(Rs16,Rt16); if (p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.gt(r0,r0); if (p0.new) jump:nt #0x0
+}
+//CHECK: 1480c000
+
+//J4_cmpgt_fp0_jump_nt
+//p0=cmp.gt(Rs16,Rt16); if (!p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.gt(r0,r0); if (!p0.new) jump:nt #0x0
+}
+//CHECK: 14c0c000
+
+//J4_cmpgt_tp0_jump_t
+//p0=cmp.gt(Rs16,Rt16); if (p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.gt(r0,r0); if (p0.new) jump:t #0x0
+}
+//CHECK: 1480e000
+
+//J4_cmpgt_fp0_jump_t
+//p0=cmp.gt(Rs16,Rt16); if (!p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.gt(r0,r0); if (!p0.new) jump:t #0x0
+}
+//CHECK: 14c0e000
+
+//J4_cmpgt_tp1_jump_nt
+//p1=cmp.gt(Rs16,Rt16); if (p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.gt(r0,r0); if (p1.new) jump:nt #0x0
+}
+//CHECK: 1480d000
+
+//J4_cmpgt_fp1_jump_nt
+//p1=cmp.gt(Rs16,Rt16); if (!p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.gt(r0,r0); if (!p1.new) jump:nt #0x0
+}
+//CHECK: 14c0d000
+
+//J4_cmpgt_tp1_jump_t
+//p1=cmp.gt(Rs16,Rt16); if (p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.gt(r0,r0); if (p1.new) jump:t #0x0
+}
+//CHECK: 1480f000
+
+//J4_cmpgt_fp1_jump_t
+//p1=cmp.gt(Rs16,Rt16); if (!p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.gt(r0,r0); if (!p1.new) jump:t #0x0
+}
+//CHECK: 14c0f000
+
+//J4_cmpgtu_tp0_jump_nt
+//p0=cmp.gtu(Rs16,Rt16); if (p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.gtu(r0,r0); if (p0.new) jump:nt #0x0
+}
+//CHECK: 1500c000
+
+//J4_cmpgtu_fp0_jump_nt
+//p0=cmp.gtu(Rs16,Rt16); if (!p0.new) jump:nt #r9:2
+{
+    p0=p1
+    p0=cmp.gtu(r0,r0); if (!p0.new) jump:nt #0x0
+}
+//CHECK: 1540c000
+
+//J4_cmpgtu_tp0_jump_t
+//p0=cmp.gtu(Rs16,Rt16); if (p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.gtu(r0,r0); if (p0.new) jump:t #0x0
+}
+//CHECK: 1500e000
+
+//J4_cmpgtu_fp0_jump_t
+//p0=cmp.gtu(Rs16,Rt16); if (!p0.new) jump:t #r9:2
+{
+    p0=p1
+    p0=cmp.gtu(r0,r0); if (!p0.new) jump:t #0x0
+}
+//CHECK: 1540e000
+
+//J4_cmpgtu_tp1_jump_nt
+//p1=cmp.gtu(Rs16,Rt16); if (p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.gtu(r0,r0); if (p1.new) jump:nt #0x0
+}
+//CHECK: 1500d000
+
+//J4_cmpgtu_fp1_jump_nt
+//p1=cmp.gtu(Rs16,Rt16); if (!p1.new) jump:nt #r9:2
+{
+    p0=p1
+    p1=cmp.gtu(r0,r0); if (!p1.new) jump:nt #0x0
+}
+//CHECK: 1540d000
+
+//J4_cmpgtu_tp1_jump_t
+//p1=cmp.gtu(Rs16,Rt16); if (p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.gtu(r0,r0); if (p1.new) jump:t #0x0
+}
+//CHECK: 1500f000
+
+//J4_cmpgtu_fp1_jump_t
+//p1=cmp.gtu(Rs16,Rt16); if (!p1.new) jump:t #r9:2
+{
+    p0=p1
+    p1=cmp.gtu(r0,r0); if (!p1.new) jump:t #0x0
+}
+//CHECK: 1540f000
+
+//J4_jumpseti
+//Rd16=#U6 ; jump #r9:2
+{ r2=#0x0 ; jump #0x0 }
+//CHECK: 1602c000
+
+//J4_jumpsetr
+//Rd16=Rs16 ; jump #r9:2
+{ r2=r0 ; jump #0x0 }
+//CHECK: 1700c200
+
+//J4_cmpeqi_t_jumpnv_t
+//if (cmp.eq(Ns8.new,#U5)) jump:t #r9:2
+{
+    r0=r1
+    if (cmp.eq(r0.new,#0x0)) jump:t #0x0
+}
+//CHECK: 2402e000
+
+//J4_cmpeqi_t_jumpnv_nt
+//if (cmp.eq(Ns8.new,#U5)) jump:nt #r9:2
+{
+    r0=r1
+    if (cmp.eq(r0.new,#0x0)) jump:nt #0x0
+}
+//CHECK: 2402c000
+
+//J4_cmpeqi_f_jumpnv_t
+//if (!cmp.eq(Ns8.new,#U5)) jump:t #r9:2
+{
+    r0=r1
+    if (!cmp.eq(r0.new,#0x0)) jump:t #0x0
+}
+//CHECK: 2442e000
+
+//J4_cmpeqi_f_jumpnv_nt
+//if (!cmp.eq(Ns8.new,#U5)) jump:nt #r9:2
+{
+    r0=r1
+    if (!cmp.eq(r0.new,#0x0)) jump:nt #0x0
+}
+//CHECK: 2442c000
+
+//J4_cmpgti_t_jumpnv_t
+//if (cmp.gt(Ns8.new,#U5)) jump:t #r9:2
+{
+    r0=r1
+    if (cmp.gt(r0.new,#0x0)) jump:t #0x0
+}
+//CHECK: 2482e000
+
+//J4_cmpgti_t_jumpnv_nt
+//if (cmp.gt(Ns8.new,#U5)) jump:nt #r9:2
+{
+    r0=r1
+    if (cmp.gt(r0.new,#0x0)) jump:nt #0x0
+}
+//CHECK: 2482c000
+
+//J4_cmpgti_f_jumpnv_t
+//if (!cmp.gt(Ns8.new,#U5)) jump:t #r9:2
+{
+    r0=r1
+    if (!cmp.gt(r0.new,#0x0)) jump:t #0x0
+}
+//CHECK: 24c2e000
+
+//J4_cmpgti_f_jumpnv_nt
+//if (!cmp.gt(Ns8.new,#U5)) jump:nt #r9:2
+{
+    r0=r1
+    if (!cmp.gt(r0.new,#0x0)) jump:nt #0x0
+}
+//CHECK: 24c2c000
+
+//J4_cmpgtui_t_jumpnv_t
+//if (cmp.gtu(Ns8.new,#U5)) jump:t #r9:2
+{
+    r0=r1
+    if (cmp.gtu(r0.new,#0x0)) jump:t #0x0
+}
+//CHECK: 2502e000
+
+//J4_cmpgtui_t_jumpnv_nt
+//if (cmp.gtu(Ns8.new,#U5)) jump:nt #r9:2
+{
+    r0=r1
+    if (cmp.gtu(r0.new,#0x0)) jump:nt #0x0
+}
+//CHECK: 2502c000
+
+//J4_cmpgtui_f_jumpnv_t
+//if (!cmp.gtu(Ns8.new,#U5)) jump:t #r9:2
+{
+    r0=r1
+    if (!cmp.gtu(r0.new,#0x0)) jump:t #0x0
+}
+//CHECK: 2542e000
+
+//J4_cmpgtui_f_jumpnv_nt
+//if (!cmp.gtu(Ns8.new,#U5)) jump:nt #r9:2
+{
+    r0=r1
+    if (!cmp.gtu(r0.new,#0x0)) jump:nt #0x0
+}
+//CHECK: 2542c000
+
+//J4_cmpeqn1_t_jumpnv_t
+//if (cmp.eq(Ns8.new,#-1)) jump:t #r9:2
+{
+    r0=r1
+    if (cmp.eq(r0.new,#-1)) jump:t #0x0
+}
+//CHECK: 2602e000
+
+//J4_cmpeqn1_t_jumpnv_nt
+//if (cmp.eq(Ns8.new,#-1)) jump:nt #r9:2
+{
+    r0=r1
+    if (cmp.eq(r0.new,#-1)) jump:nt #0x0
+}
+//CHECK: 2602c000
+
+//J4_cmpeqn1_f_jumpnv_t
+//if (!cmp.eq(Ns8.new,#-1)) jump:t #r9:2
+{
+    r0=r1
+    if (!cmp.eq(r0.new,#-1)) jump:t #0x0
+}
+//CHECK: 2642e000
+
+//J4_cmpeqn1_f_jumpnv_nt
+//if (!cmp.eq(Ns8.new,#-1)) jump:nt #r9:2
+{
+    r0=r1
+    if (!cmp.eq(r0.new,#-1)) jump:nt #0x0
+}
+//CHECK: 2642c000
+
+//J4_cmpgtn1_t_jumpnv_t
+//if (cmp.gt(Ns8.new,#-1)) jump:t #r9:2
+{
+    r0=r1
+    if (cmp.gt(r0.new,#-1)) jump:t #0x0
+}
+//CHECK: 2682e000
+
+//J4_cmpgtn1_t_jumpnv_nt
+//if (cmp.gt(Ns8.new,#-1)) jump:nt #r9:2
+{
+    r0=r1
+    if (cmp.gt(r0.new,#-1)) jump:nt #0x0
+}
+//CHECK: 2682c000
+
+//J4_cmpgtn1_f_jumpnv_t
+//if (!cmp.gt(Ns8.new,#-1)) jump:t #r9:2
+{
+    r0=r1
+    if (!cmp.gt(r0.new,#-1)) jump:t #0x0
+}
+//CHECK: 26c2e000
+
+//J4_cmpgtn1_f_jumpnv_nt
+//if (!cmp.gt(Ns8.new,#-1)) jump:nt #r9:2
+{
+    r0=r1
+    if (!cmp.gt(r0.new,#-1)) jump:nt #0x0
+}
+//CHECK: 26c2c000
+
+//J4_tstbit0_t_jumpnv_t
+//if (tstbit(Ns8.new,#0)) jump:t #r9:2
+{
+    r0=r1
+    if (tstbit(r0.new,#0)) jump:t #0x0
+}
+//CHECK: 2582e000
+
+//J4_tstbit0_t_jumpnv_nt
+//if (tstbit(Ns8.new,#0)) jump:nt #r9:2
+{
+    r0=r1
+    if (tstbit(r0.new,#0)) jump:nt #0x0
+}
+//CHECK: 2582c000
+
+//J4_tstbit0_f_jumpnv_t
+//if (!tstbit(Ns8.new,#0)) jump:t #r9:2
+{
+    r0=r1
+    if (!tstbit(r0.new,#0)) jump:t #0x0
+}
+//CHECK: 25c2e000
+
+//J4_tstbit0_f_jumpnv_nt
+//if (!tstbit(Ns8.new,#0)) jump:nt #r9:2
+{
+    r0=r1
+    if (!tstbit(r0.new,#0)) jump:nt #0x0
+}
+//CHECK: 25c2c000
+
+//J4_cmpeq_t_jumpnv_t
+//if (cmp.eq(Ns8.new,Rt32)) jump:t #r9:2
+{
+    r0=r1
+    if (cmp.eq(r0.new,r0)) jump:t #0x0
+}
+//CHECK: 2002e000
+
+//J4_cmpeq_t_jumpnv_nt
+//if (cmp.eq(Ns8.new,Rt32)) jump:nt #r9:2
+{
+    r0=r1
+    if (cmp.eq(r0.new,r0)) jump:nt #0x0
+}
+//CHECK: 2002c000
+
+//J4_cmpgt_t_jumpnv_t
+//if (cmp.gt(Ns8.new,Rt32)) jump:t #r9:2
+{
+    r0=r1
+    if (cmp.gt(r0.new,r0)) jump:t #0x0
+}
+//CHECK: 2082e000
+
+//J4_cmpgt_t_jumpnv_nt
+//if (cmp.gt(Ns8.new,Rt32)) jump:nt #r9:2
+{
+    r0=r1
+    if (cmp.gt(r0.new,r0)) jump:nt #0x0
+}
+//CHECK: 2082c000
+
+//J4_cmpgtu_t_jumpnv_t
+//if (cmp.gtu(Ns8.new,Rt32)) jump:t #r9:2
+{
+    r0=r1
+    if (cmp.gtu(r0.new,r0)) jump:t #0x0
+}
+//CHECK: 2102e000
+
+//J4_cmpgtu_t_jumpnv_nt
+//if (cmp.gtu(Ns8.new,Rt32)) jump:nt #r9:2
+{
+    r0=r1
+    if (cmp.gtu(r0.new,r0)) jump:nt #0x0
+}
+//CHECK: 2102c000
+
+//J4_cmplt_t_jumpnv_t
+//if (cmp.gt(Rt32,Ns8.new)) jump:t #r9:2
+{
+    r0=r1
+    if (cmp.gt(r0,r0.new)) jump:t #0x0
+}
+//CHECK: 2182e000
+
+//J4_cmplt_t_jumpnv_nt
+//if (cmp.gt(Rt32,Ns8.new)) jump:nt #r9:2
+{
+    r0=r1
+    if (cmp.gt(r0,r0.new)) jump:nt #0x0
+}
+//CHECK: 2182c000
+
+//J4_cmpltu_t_jumpnv_t
+//if (cmp.gtu(Rt32,Ns8.new)) jump:t #r9:2
+{
+    r0=r1
+    if (cmp.gtu(r0,r0.new)) jump:t #0x0
+}
+//CHECK: 2202e000
+
+//J4_cmpltu_t_jumpnv_nt
+//if (cmp.gtu(Rt32,Ns8.new)) jump:nt #r9:2
+{
+    r0=r1
+    if (cmp.gtu(r0,r0.new)) jump:nt #0x0
+}
+//CHECK: 2202c000
+
+//J4_cmpeq_f_jumpnv_t
+//if (!cmp.eq(Ns8.new,Rt32)) jump:t #r9:2
+{
+    r0=r1
+    if (!cmp.eq(r0.new,r0)) jump:t #0x0
+}
+//CHECK: 2042e000
+
+//J4_cmpeq_f_jumpnv_nt
+//if (!cmp.eq(Ns8.new,Rt32)) jump:nt #r9:2
+{
+    r0=r1
+    if (!cmp.eq(r0.new,r0)) jump:nt #0x0
+}
+//CHECK: 2042c000
+
+//J4_cmpgt_f_jumpnv_t
+//if (!cmp.gt(Ns8.new,Rt32)) jump:t #r9:2
+{
+    r0=r1
+    if (!cmp.gt(r0.new,r0)) jump:t #0x0
+}
+//CHECK: 20c2e000
+
+//J4_cmpgt_f_jumpnv_nt
+//if (!cmp.gt(Ns8.new,Rt32)) jump:nt #r9:2
+{
+    r0=r1
+    if (!cmp.gt(r0.new,r0)) jump:nt #0x0
+}
+//CHECK: 20c2c000
+
+//J4_cmpgtu_f_jumpnv_t
+//if (!cmp.gtu(Ns8.new,Rt32)) jump:t #r9:2
+{
+    r0=r1
+    if (!cmp.gtu(r0.new,r0)) jump:t #0x0
+}
+//CHECK: 2142e000
+
+//J4_cmpgtu_f_jumpnv_nt
+//if (!cmp.gtu(Ns8.new,Rt32)) jump:nt #r9:2
+{
+    r0=r1
+    if (!cmp.gtu(r0.new,r0)) jump:nt #0x0
+}
+//CHECK: 2142c000
+
+//J4_cmplt_f_jumpnv_t
+//if (!cmp.gt(Rt32,Ns8.new)) jump:t #r9:2
+{
+    r0=r1
+    if (!cmp.gt(r0,r0.new)) jump:t #0x0
+}
+//CHECK: 21c2e000
+
+//J4_cmplt_f_jumpnv_nt
+//if (!cmp.gt(Rt32,Ns8.new)) jump:nt #r9:2
+{
+    r0=r1
+    if (!cmp.gt(r0,r0.new)) jump:nt #0x0
+}
+//CHECK: 21c2c000
+
+//J4_cmpltu_f_jumpnv_t
+//if (!cmp.gtu(Rt32,Ns8.new)) jump:t #r9:2
+{
+    r0=r1
+    if (!cmp.gtu(r0,r0.new)) jump:t #0x0
+}
+//CHECK: 2242e000
+
+//J4_cmpltu_f_jumpnv_nt
+//if (!cmp.gtu(Rt32,Ns8.new)) jump:nt #r9:2
+{
+    r0=r1
+    if (!cmp.gtu(r0,r0.new)) jump:nt #0x0
+}
+//CHECK: 2242c000
+
+//J2_call
+//call #r22:2
+call #0x0
+//CHECK: 5a00c000
+
+//J2_callt
+//if (Pu4) call #r15:2
+if (p0) call #0x0
+//CHECK: 5d00c000
+
+//J2_callf
+//if (!Pu4) call #r15:2
+if (!p0) call #0x0
+//CHECK: 5d20c000
+
+//J2_callr
+//callr Rs32
+callr r0
+//CHECK: 50a0c000
+
+//J2_callrt
+//if (Pu4) callr Rs32
+if (p0) callr r0
+//CHECK: 5100c000
+
+//J2_callrf
+//if (!Pu4) callr Rs32
+if (!p0) callr r0
+//CHECK: 5120c000
+
+//J2_callrh
+//callrh Rs32
+callrh r0
+//CHECK: 50c0c000
+
+//J2_loop0r
+//loop0(#r7:2,Rs32)
+loop0(#0x0,r0)
+//CHECK: 6000c000
+
+//J2_loop1r
+//loop1(#r7:2,Rs32)
+loop1(#0x0,r0)
+//CHECK: 6020c000
+
+//J2_loop0i
+//loop0(#r7:2,#U10)
+loop0(#0x0,#0x0)
+//CHECK: 6900c000
+
+//J2_loop1i
+//loop1(#r7:2,#U10)
+loop1(#0x0,#0x0)
+//CHECK: 6920c000
+
+//J2_ploop1sr
+//p3=sp1loop0(#r7:2,Rs32)
+p3=sp1loop0(#0x0,r0)
+//CHECK: 60a0c000
+
+//J2_ploop1si
+//p3=sp1loop0(#r7:2,#U10)
+p3=sp1loop0(#0x0,#0x0)
+//CHECK: 69a0c000
+
+//J2_ploop2sr
+//p3=sp2loop0(#r7:2,Rs32)
+p3=sp2loop0(#0x0,r0)
+//CHECK: 60c0c000
+
+//J2_ploop2si
+//p3=sp2loop0(#r7:2,#U10)
+p3=sp2loop0(#0x0,#0x0)
+//CHECK: 69c0c000
+
+//J2_ploop3sr
+//p3=sp3loop0(#r7:2,Rs32)
+p3=sp3loop0(#0x0,r0)
+//CHECK: 60e0c000
+
+//J2_ploop3si
+//p3=sp3loop0(#r7:2,#U10)
+p3=sp3loop0(#0x0,#0x0)
+//CHECK: 69e0c000
+
+//C2_cmpeq
+//Pd4=cmp.eq(Rs32,Rt32)
+p0=cmp.eq(r0,r0)
+//CHECK: f200c000
+
+//C2_cmpgt
+//Pd4=cmp.gt(Rs32,Rt32)
+p0=cmp.gt(r0,r0)
+//CHECK: f240c000
+
+//C2_cmpgtu
+//Pd4=cmp.gtu(Rs32,Rt32)
+p0=cmp.gtu(r0,r0)
+//CHECK: f260c000
+
+//C2_cmpeqp
+//Pd4=cmp.eq(Rss32,Rtt32)
+p0=cmp.eq(r1:0,r1:0)
+//CHECK: d280c000
+
+//C2_cmpgtp
+//Pd4=cmp.gt(Rss32,Rtt32)
+p0=cmp.gt(r1:0,r1:0)
+//CHECK: d280c040
+
+//C2_cmpgtup
+//Pd4=cmp.gtu(Rss32,Rtt32)
+p0=cmp.gtu(r1:0,r1:0)
+//CHECK: d280c080
+
+//A4_rcmpeqi
+//Rd32=cmp.eq(Rs32,#s8)
+r2=cmp.eq(r0,#0x0)
+//CHECK: 7340e002
+
+//A4_rcmpneqi
+//Rd32=!cmp.eq(Rs32,#s8)
+r2=!cmp.eq(r0,#0x0)
+//CHECK: 7360e002
+
+//A4_rcmpeq
+//Rd32=cmp.eq(Rs32,Rt32)
+r2=cmp.eq(r0,r0)
+//CHECK: f340c002
+
+//A4_rcmpneq
+//Rd32=!cmp.eq(Rs32,Rt32)
+r2=!cmp.eq(r0,r0)
+//CHECK: f360c002
+
+//C2_bitsset
+//Pd4=bitsset(Rs32,Rt32)
+p0=bitsset(r0,r0)
+//CHECK: c740c000
+
+//C2_bitsclr
+//Pd4=bitsclr(Rs32,Rt32)
+p0=bitsclr(r0,r0)
+//CHECK: c780c000
+
+//C4_nbitsset
+//Pd4=!bitsset(Rs32,Rt32)
+p0=!bitsset(r0,r0)
+//CHECK: c760c000
+
+//C4_nbitsclr
+//Pd4=!bitsclr(Rs32,Rt32)
+p0=!bitsclr(r0,r0)
+//CHECK: c7a0c000
+
+//C2_cmpeqi
+//Pd4=cmp.eq(Rs32,#s10)
+p0=cmp.eq(r0,#0x0)
+//CHECK: 7500c000
+
+//C2_cmpgti
+//Pd4=cmp.gt(Rs32,#s10)
+p0=cmp.gt(r0,#0x0)
+//CHECK: 7540c000
+
+//C2_cmpgtui
+//Pd4=cmp.gtu(Rs32,#u9)
+p0=cmp.gtu(r0,#0x0)
+//CHECK: 7580c000
+
+//C2_bitsclri
+//Pd4=bitsclr(Rs32,#u6)
+p0=bitsclr(r0,#0x0)
+//CHECK: 8580c000
+
+//C4_nbitsclri
+//Pd4=!bitsclr(Rs32,#u6)
+p0=!bitsclr(r0,#0x0)
+//CHECK: 85a0c000
+
+//C4_cmpneqi
+//Pd4=!cmp.eq(Rs32,#s10)
+p0=!cmp.eq(r0,#0x0)
+//CHECK: 7500c010
+
+//C4_cmpltei
+//Pd4=!cmp.gt(Rs32,#s10)
+p0=!cmp.gt(r0,#0x0)
+//CHECK: 7540c010
+
+//C4_cmplteui
+//Pd4=!cmp.gtu(Rs32,#u9)
+p0=!cmp.gtu(r0,#0x0)
+//CHECK: 7580c010
+
+//C4_cmpneq
+//Pd4=!cmp.eq(Rs32,Rt32)
+p0=!cmp.eq(r0,r0)
+//CHECK: f200c010
+
+//C4_cmplte
+//Pd4=!cmp.gt(Rs32,Rt32)
+p0=!cmp.gt(r0,r0)
+//CHECK: f240c010
+
+//C4_cmplteu
+//Pd4=!cmp.gtu(Rs32,Rt32)
+p0=!cmp.gtu(r0,r0)
+//CHECK: f260c010
+
+//C2_and
+//Pd4=and(Pt4,Ps4)
+p0=and(p0,p0)
+//CHECK: 6b00c000
+
+//C2_or
+//Pd4=or(Pt4,Ps4)
+p0=or(p0,p0)
+//CHECK: 6b20c000
+
+//C2_xor
+//Pd4=xor(Ps4,Pt4)
+p0=xor(p0,p0)
+//CHECK: 6b40c000
+
+//C2_andn
+//Pd4=and(Pt4,!Ps4)
+p0=and(p0,!p0)
+//CHECK: 6b60c000
+
+//C2_not
+//Pd4=not(Ps4)
+p0=not(p0)
+//CHECK: 6bc0c000
+
+//C2_orn
+//Pd4=or(Pt4,!Ps4)
+p0=or(p0,!p0)
+//CHECK: 6be0c000
+
+//C4_and_and
+//Pd4=and(Ps4,and(Pt4,Pu4))
+p0=and(p0,and(p0,p0))
+//CHECK: 6b10c000
+
+//C4_and_or
+//Pd4=and(Ps4,or(Pt4,Pu4))
+p0=and(p0,or(p0,p0))
+//CHECK: 6b30c000
+
+//C4_or_and
+//Pd4=or(Ps4,and(Pt4,Pu4))
+p0=or(p0,and(p0,p0))
+//CHECK: 6b50c000
+
+//C4_or_or
+//Pd4=or(Ps4,or(Pt4,Pu4))
+p0=or(p0,or(p0,p0))
+//CHECK: 6b70c000
+
+//C4_and_andn
+//Pd4=and(Ps4,and(Pt4,!Pu4))
+p0=and(p0,and(p0,!p0))
+//CHECK: 6b90c000
+
+//C4_and_orn
+//Pd4=and(Ps4,or(Pt4,!Pu4))
+p0=and(p0,or(p0,!p0))
+//CHECK: 6bb0c000
+
+//C4_or_andn
+//Pd4=or(Ps4,and(Pt4,!Pu4))
+p0=or(p0,and(p0,!p0))
+//CHECK: 6bd0c000
+
+//C4_or_orn
+//Pd4=or(Ps4,or(Pt4,!Pu4))
+p0=or(p0,or(p0,!p0))
+//CHECK: 6bf0c000
+
+//C2_any8
+//Pd4=any8(Ps4)
+p0=any8(p0)
+//CHECK: 6b80c000
+
+//C2_all8
+//Pd4=all8(Ps4)
+p0=all8(p0)
+//CHECK: 6ba0c000
+
+//C2_vitpack
+//Rd32=vitpack(Ps4,Pt4)
+r2=vitpack(p0,p0)
+//CHECK: 8900c002
+
+//C2_mux
+//Rd32=mux(Pu4,Rs32,Rt32)
+r2=mux(p0,r0,r0)
+//CHECK: f400c002
+
+//C2_cmovenewit
+//if (Pu4.new) Rd32=#s12
+{
+    p0=p1
+    if (p0.new) r2=#0x0
+}
+//CHECK: 7e00e002
+
+//C2_cmovenewif
+//if (!Pu4.new) Rd32=#s12
+{
+    p0=p1
+    if (!p0.new) r2=#0x0
+}
+//CHECK: 7e80e002
+
+//C2_cmoveit
+//if (Pu4) Rd32=#s12
+if (p0) r2=#0x0
+//CHECK: 7e00c002
+
+//C2_cmoveif
+//if (!Pu4) Rd32=#s12
+if (!p0) r2=#0x0
+//CHECK: 7e80c002
+
+//C2_ccombinewnewt
+//if (Pu4.new) Rdd32=combine(Rs32,Rt32)
+{
+    p0=p1
+    if (p0.new) r3:2=combine(r0,r0)
+}
+//CHECK: fd00e002
+
+//C2_ccombinewnewf
+//if (!Pu4.new) Rdd32=combine(Rs32,Rt32)
+{
+    p0=p1
+    if (!p0.new) r3:2=combine(r0,r0)
+}
+//CHECK: fd00e082
+
+//C2_ccombinewt
+//if (Pu4) Rdd32=combine(Rs32,Rt32)
+if (p0) r3:2=combine(r0,r0)
+//CHECK: fd00c002
+
+//C2_ccombinewf
+//if (!Pu4) Rdd32=combine(Rs32,Rt32)
+if (!p0) r3:2=combine(r0,r0)
+//CHECK: fd00c082
+
+//C2_muxii
+//Rd32=mux(Pu4,#s8,#S8)
+r2=mux(p0,#0x0,#0x0)
+//CHECK: 7a00c002
+
+//C2_muxir
+//Rd32=mux(Pu4,Rs32,#s8)
+r2=mux(p0,r0,#0x0)
+//CHECK: 7300c002
+
+//C2_muxri
+//Rd32=mux(Pu4,#s8,Rs32)
+r2=mux(p0,#0x0,r0)
+//CHECK: 7380c002
+
+//C2_vmux
+//Rdd32=vmux(Pu4,Rss32,Rtt32)
+r3:2=vmux(p0,r1:0,r1:0)
+//CHECK: d100c002
+
+//C2_mask
+//Rdd32=mask(Pt4)
+r3:2=mask(p0)
+//CHECK: 8600c002
+
+//A2_vcmpbeq
+//Pd4=vcmpb.eq(Rss32,Rtt32)
+p0=vcmpb.eq(r1:0,r1:0)
+//CHECK: d200c0c0
+
+//A4_vcmpbeqi
+//Pd4=vcmpb.eq(Rss32,#u8)
+p0=vcmpb.eq(r1:0,#0x0)
+//CHECK: dc00c000
+
+//A4_vcmpbeq_any
+//Pd4=any8(vcmpb.eq(Rss32,Rtt32))
+p0=any8(vcmpb.eq(r1:0,r1:0))
+//CHECK: d200e000
+
+//A6_vcmpbeq_notany
+//Pd4=!any8(vcmpb.eq(Rss32,Rtt32))
+p0=!any8(vcmpb.eq(r1:0,r1:0))
+//CHECK: d200e020
+
+//A2_vcmpbgtu
+//Pd4=vcmpb.gtu(Rss32,Rtt32)
+p0=vcmpb.gtu(r1:0,r1:0)
+//CHECK: d200c0e0
+
+//A4_vcmpbgtui
+//Pd4=vcmpb.gtu(Rss32,#u7)
+p0=vcmpb.gtu(r1:0,#0x0)
+//CHECK: dc40c000
+
+//A4_vcmpbgt
+//Pd4=vcmpb.gt(Rss32,Rtt32)
+p0=vcmpb.gt(r1:0,r1:0)
+//CHECK: d200e040
+
+//A4_vcmpbgti
+//Pd4=vcmpb.gt(Rss32,#s8)
+p0=vcmpb.gt(r1:0,#0x0)
+//CHECK: dc20c000
+
+//A4_cmpbeq
+//Pd4=cmpb.eq(Rs32,Rt32)
+p0=cmpb.eq(r0,r0)
+//CHECK: c7c0c0c0
+
+//A4_cmpbeqi
+//Pd4=cmpb.eq(Rs32,#u8)
+p0=cmpb.eq(r0,#0x0)
+//CHECK: dd00c000
+
+//A4_cmpbgtu
+//Pd4=cmpb.gtu(Rs32,Rt32)
+p0=cmpb.gtu(r0,r0)
+//CHECK: c7c0c0e0
+
+//A4_cmpbgtui
+//Pd4=cmpb.gtu(Rs32,#u7)
+p0=cmpb.gtu(r0,#0x0)
+//CHECK: dd40c000
+
+//A4_cmpbgt
+//Pd4=cmpb.gt(Rs32,Rt32)
+p0=cmpb.gt(r0,r0)
+//CHECK: c7c0c040
+
+//A4_cmpbgti
+//Pd4=cmpb.gt(Rs32,#s8)
+p0=cmpb.gt(r0,#0x0)
+//CHECK: dd20c000
+
+//A2_vcmpheq
+//Pd4=vcmph.eq(Rss32,Rtt32)
+p0=vcmph.eq(r1:0,r1:0)
+//CHECK: d200c060
+
+//A2_vcmphgt
+//Pd4=vcmph.gt(Rss32,Rtt32)
+p0=vcmph.gt(r1:0,r1:0)
+//CHECK: d200c080
+
+//A2_vcmphgtu
+//Pd4=vcmph.gtu(Rss32,Rtt32)
+p0=vcmph.gtu(r1:0,r1:0)
+//CHECK: d200c0a0
+
+//A4_vcmpheqi
+//Pd4=vcmph.eq(Rss32,#s8)
+p0=vcmph.eq(r1:0,#0x0)
+//CHECK: dc00c008
+
+//A4_vcmphgti
+//Pd4=vcmph.gt(Rss32,#s8)
+p0=vcmph.gt(r1:0,#0x0)
+//CHECK: dc20c008
+
+//A4_vcmphgtui
+//Pd4=vcmph.gtu(Rss32,#u7)
+p0=vcmph.gtu(r1:0,#0x0)
+//CHECK: dc40c008
+
+//A4_cmpheq
+//Pd4=cmph.eq(Rs32,Rt32)
+p0=cmph.eq(r0,r0)
+//CHECK: c7c0c060
+
+//A4_cmphgt
+//Pd4=cmph.gt(Rs32,Rt32)
+p0=cmph.gt(r0,r0)
+//CHECK: c7c0c080
+
+//A4_cmphgtu
+//Pd4=cmph.gtu(Rs32,Rt32)
+p0=cmph.gtu(r0,r0)
+//CHECK: c7c0c0a0
+
+//A4_cmpheqi
+//Pd4=cmph.eq(Rs32,#s8)
+p0=cmph.eq(r0,#0x0)
+//CHECK: dd00c008
+
+//A4_cmphgti
+//Pd4=cmph.gt(Rs32,#s8)
+p0=cmph.gt(r0,#0x0)
+//CHECK: dd20c008
+
+//A4_cmphgtui
+//Pd4=cmph.gtu(Rs32,#u7)
+p0=cmph.gtu(r0,#0x0)
+//CHECK: dd40c008
+
+//A2_vcmpweq
+//Pd4=vcmpw.eq(Rss32,Rtt32)
+p0=vcmpw.eq(r1:0,r1:0)
+//CHECK: d200c000
+
+//A2_vcmpwgt
+//Pd4=vcmpw.gt(Rss32,Rtt32)
+p0=vcmpw.gt(r1:0,r1:0)
+//CHECK: d200c020
+
+//A2_vcmpwgtu
+//Pd4=vcmpw.gtu(Rss32,Rtt32)
+p0=vcmpw.gtu(r1:0,r1:0)
+//CHECK: d200c040
+
+//A4_vcmpweqi
+//Pd4=vcmpw.eq(Rss32,#s8)
+p0=vcmpw.eq(r1:0,#0x0)
+//CHECK: dc00c010
+
+//A4_vcmpwgti
+//Pd4=vcmpw.gt(Rss32,#s8)
+p0=vcmpw.gt(r1:0,#0x0)
+//CHECK: dc20c010
+
+//A4_vcmpwgtui
+//Pd4=vcmpw.gtu(Rss32,#u7)
+p0=vcmpw.gtu(r1:0,#0x0)
+//CHECK: dc40c010
+
+//A4_boundscheck_hi
+//Pd4=boundscheck(Rss32,Rtt32):raw:hi
+p0=boundscheck(r1:0,r1:0):raw:hi
+//CHECK: d200e0a0
+
+//A4_boundscheck_lo
+//Pd4=boundscheck(Rss32,Rtt32):raw:lo
+p0=boundscheck(r1:0,r1:0):raw:lo
+//CHECK: d200e080
+
+//A4_tlbmatch
+//Pd4=tlbmatch(Rss32,Rt32)
+p0=tlbmatch(r1:0,r0)
+//CHECK: d200e060
+
+//C2_tfrpr
+//Rd32=Ps4
+r2=p0
+//CHECK: 8940c002
+
+//C2_tfrrp
+//Pd4=Rs32
+p0=r0
+//CHECK: 8540c000
+
+//C4_fastcorner9
+//Pd4=fastcorner9(Ps4,Pt4)
+p0=fastcorner9(p0,p0)
+//CHECK: 6b00e090
+
+//C4_fastcorner9_not
+//Pd4=!fastcorner9(Ps4,Pt4)
+p0=!fastcorner9(p0,p0)
+//CHECK: 6b10e090
+
+//L2_loadrub_io
+//Rd32=memub(Rs32+#s11:0)
+r2=memub(r0+#0x0)
+//CHECK: 9120c002
+
+//L4_loadrub_ur
+//Rd32=memub(Rt32<<#u2+#U6)
+r2=memub(r0<<#0x0+#0x0)
+//CHECK: 9d20d002
+
+//L4_loadrub_ap
+//Rd32=memub(Re32=#U6)
+r2=memub(r8=#0x0)
+//CHECK: 9b28d002
+
+//L2_loadrub_pr
+//Rd32=memub(Rx32++Mu2)
+r2=memub(r6++m0)
+//CHECK: 9d26c002
+
+//L2_loadrub_pbr
+//Rd32=memub(Rx32++Mu2:brev)
+r2=memub(r6++m0:brev)
+//CHECK: 9f26c002
+
+//L2_loadrub_pi
+//Rd32=memub(Rx32++#s4:0)
+r2=memub(r6++#0x0)
+//CHECK: 9b26c002
+
+//L2_loadrub_pci
+//Rd32=memub(Rx32++#s4:0:circ(Mu2))
+r2=memub(r6++#0x0:circ(m0))
+//CHECK: 9926c002
+
+//L2_loadrub_pcr
+//Rd32=memub(Rx32++I:circ(Mu2))
+r2=memub(r6++i:circ(m0))
+//CHECK: 9926c202
+
+//L2_loadrb_io
+//Rd32=memb(Rs32+#s11:0)
+r2=memb(r0+#0x0)
+//CHECK: 9100c002
+
+//L4_loadrb_ur
+//Rd32=memb(Rt32<<#u2+#U6)
+r2=memb(r0<<#0x0+#0x0)
+//CHECK: 9d00d002
+
+//L4_loadrb_ap
+//Rd32=memb(Re32=#U6)
+r2=memb(r8=#0x0)
+//CHECK: 9b08d002
+
+//L2_loadrb_pr
+//Rd32=memb(Rx32++Mu2)
+r2=memb(r6++m0)
+//CHECK: 9d06c002
+
+//L2_loadrb_pbr
+//Rd32=memb(Rx32++Mu2:brev)
+r2=memb(r6++m0:brev)
+//CHECK: 9f06c002
+
+//L2_loadrb_pi
+//Rd32=memb(Rx32++#s4:0)
+r2=memb(r6++#0x0)
+//CHECK: 9b06c002
+
+//L2_loadrb_pci
+//Rd32=memb(Rx32++#s4:0:circ(Mu2))
+r2=memb(r6++#0x0:circ(m0))
+//CHECK: 9906c002
+
+//L2_loadrb_pcr
+//Rd32=memb(Rx32++I:circ(Mu2))
+r2=memb(r6++i:circ(m0))
+//CHECK: 9906c202
+
+//L2_loadruh_io
+//Rd32=memuh(Rs32+#s11:1)
+r2=memuh(r0+#0x0)
+//CHECK: 9160c002
+
+//L4_loadruh_ur
+//Rd32=memuh(Rt32<<#u2+#U6)
+r2=memuh(r0<<#0x0+#0x0)
+//CHECK: 9d60d002
+
+//L4_loadruh_ap
+//Rd32=memuh(Re32=#U6)
+r2=memuh(r8=#0x0)
+//CHECK: 9b68d002
+
+//L2_loadruh_pr
+//Rd32=memuh(Rx32++Mu2)
+r2=memuh(r6++m0)
+//CHECK: 9d66c002
+
+//L2_loadruh_pbr
+//Rd32=memuh(Rx32++Mu2:brev)
+r2=memuh(r6++m0:brev)
+//CHECK: 9f66c002
+
+//L2_loadruh_pi
+//Rd32=memuh(Rx32++#s4:1)
+r2=memuh(r6++#0x0)
+//CHECK: 9b66c002
+
+//L2_loadruh_pci
+//Rd32=memuh(Rx32++#s4:1:circ(Mu2))
+r2=memuh(r6++#0x0:circ(m0))
+//CHECK: 9966c002
+
+//L2_loadruh_pcr
+//Rd32=memuh(Rx32++I:circ(Mu2))
+r2=memuh(r6++i:circ(m0))
+//CHECK: 9966c202
+
+//L2_loadrh_io
+//Rd32=memh(Rs32+#s11:1)
+r2=memh(r0+#0x0)
+//CHECK: 9140c002
+
+//L4_loadrh_ur
+//Rd32=memh(Rt32<<#u2+#U6)
+r2=memh(r0<<#0x0+#0x0)
+//CHECK: 9d40d002
+
+//L4_loadrh_ap
+//Rd32=memh(Re32=#U6)
+r2=memh(r8=#0x0)
+//CHECK: 9b48d002
+
+//L2_loadrh_pr
+//Rd32=memh(Rx32++Mu2)
+r2=memh(r6++m0)
+//CHECK: 9d46c002
+
+//L2_loadrh_pbr
+//Rd32=memh(Rx32++Mu2:brev)
+r2=memh(r6++m0:brev)
+//CHECK: 9f46c002
+
+//L2_loadrh_pi
+//Rd32=memh(Rx32++#s4:1)
+r2=memh(r6++#0x0)
+//CHECK: 9b46c002
+
+//L2_loadrh_pci
+//Rd32=memh(Rx32++#s4:1:circ(Mu2))
+r2=memh(r6++#0x0:circ(m0))
+//CHECK: 9946c002
+
+//L2_loadrh_pcr
+//Rd32=memh(Rx32++I:circ(Mu2))
+r2=memh(r6++i:circ(m0))
+//CHECK: 9946c202
+
+//L2_loadri_io
+//Rd32=memw(Rs32+#s11:2)
+r2=memw(r0+#0x0)
+//CHECK: 9180c002
+
+//L4_loadri_ur
+//Rd32=memw(Rt32<<#u2+#U6)
+r2=memw(r0<<#0x0+#0x0)
+//CHECK: 9d80d002
+
+//L4_loadri_ap
+//Rd32=memw(Re32=#U6)
+r2=memw(r8=#0x0)
+//CHECK: 9b88d002
+
+//L2_loadri_pr
+//Rd32=memw(Rx32++Mu2)
+r2=memw(r6++m0)
+//CHECK: 9d86c002
+
+//L2_loadri_pbr
+//Rd32=memw(Rx32++Mu2:brev)
+r2=memw(r6++m0:brev)
+//CHECK: 9f86c002
+
+//L2_loadri_pi
+//Rd32=memw(Rx32++#s4:2)
+r2=memw(r6++#0x0)
+//CHECK: 9b86c002
+
+//L2_loadri_pci
+//Rd32=memw(Rx32++#s4:2:circ(Mu2))
+r2=memw(r6++#0x0:circ(m0))
+//CHECK: 9986c002
+
+//L2_loadri_pcr
+//Rd32=memw(Rx32++I:circ(Mu2))
+r2=memw(r6++i:circ(m0))
+//CHECK: 9986c202
+
+//L2_loadrd_io
+//Rdd32=memd(Rs32+#s11:3)
+r3:2=memd(r0+#0x0)
+//CHECK: 91c0c002
+
+//L4_loadrd_ur
+//Rdd32=memd(Rt32<<#u2+#U6)
+r3:2=memd(r0<<#0x0+#0x0)
+//CHECK: 9dc0d002
+
+//L4_loadrd_ap
+//Rdd32=memd(Re32=#U6)
+r3:2=memd(r8=#0x0)
+//CHECK: 9bc8d002
+
+//L2_loadrd_pr
+//Rdd32=memd(Rx32++Mu2)
+r3:2=memd(r6++m0)
+//CHECK: 9dc6c002
+
+//L2_loadrd_pbr
+//Rdd32=memd(Rx32++Mu2:brev)
+r3:2=memd(r6++m0:brev)
+//CHECK: 9fc6c002
+
+//L2_loadrd_pi
+//Rdd32=memd(Rx32++#s4:3)
+r3:2=memd(r6++#0x0)
+//CHECK: 9bc6c002
+
+//L2_loadrd_pci
+//Rdd32=memd(Rx32++#s4:3:circ(Mu2))
+r3:2=memd(r6++#0x0:circ(m0))
+//CHECK: 99c6c002
+
+//L2_loadrd_pcr
+//Rdd32=memd(Rx32++I:circ(Mu2))
+r3:2=memd(r6++i:circ(m0))
+//CHECK: 99c6c202
+
+//L2_loadbzw2_io
+//Rd32=memubh(Rs32+#s11:1)
+r2=memubh(r0+#0x0)
+//CHECK: 9060c002
+
+//L4_loadbzw2_ur
+//Rd32=memubh(Rt32<<#u2+#U6)
+r2=memubh(r0<<#0x0+#0x0)
+//CHECK: 9c60d002
+
+//L4_loadbzw2_ap
+//Rd32=memubh(Re32=#U6)
+r2=memubh(r8=#0x0)
+//CHECK: 9a68d002
+
+//L2_loadbzw2_pr
+//Rd32=memubh(Rx32++Mu2)
+r2=memubh(r6++m0)
+//CHECK: 9c66c002
+
+//L2_loadbzw2_pbr
+//Rd32=memubh(Rx32++Mu2:brev)
+r2=memubh(r6++m0:brev)
+//CHECK: 9e66c002
+
+//L2_loadbzw2_pi
+//Rd32=memubh(Rx32++#s4:1)
+r2=memubh(r6++#0x0)
+//CHECK: 9a66c002
+
+//L2_loadbzw2_pci
+//Rd32=memubh(Rx32++#s4:1:circ(Mu2))
+r2=memubh(r6++#0x0:circ(m0))
+//CHECK: 9866c002
+
+//L2_loadbzw2_pcr
+//Rd32=memubh(Rx32++I:circ(Mu2))
+r2=memubh(r6++i:circ(m0))
+//CHECK: 9866c202
+
+//L2_loadbzw4_io
+//Rdd32=memubh(Rs32+#s11:2)
+r3:2=memubh(r0+#0x0)
+//CHECK: 90a0c002
+
+//L4_loadbzw4_ur
+//Rdd32=memubh(Rt32<<#u2+#U6)
+r3:2=memubh(r0<<#0x0+#0x0)
+//CHECK: 9ca0d002
+
+//L4_loadbzw4_ap
+//Rdd32=memubh(Re32=#U6)
+r3:2=memubh(r8=#0x0)
+//CHECK: 9aa8d002
+
+//L2_loadbzw4_pr
+//Rdd32=memubh(Rx32++Mu2)
+r3:2=memubh(r6++m0)
+//CHECK: 9ca6c002
+
+//L2_loadbzw4_pbr
+//Rdd32=memubh(Rx32++Mu2:brev)
+r3:2=memubh(r6++m0:brev)
+//CHECK: 9ea6c002
+
+//L2_loadbzw4_pi
+//Rdd32=memubh(Rx32++#s4:2)
+r3:2=memubh(r6++#0x0)
+//CHECK: 9aa6c002
+
+//L2_loadbzw4_pci
+//Rdd32=memubh(Rx32++#s4:2:circ(Mu2))
+r3:2=memubh(r6++#0x0:circ(m0))
+//CHECK: 98a6c002
+
+//L2_loadbzw4_pcr
+//Rdd32=memubh(Rx32++I:circ(Mu2))
+r3:2=memubh(r6++i:circ(m0))
+//CHECK: 98a6c202
+
+//L2_loadbsw2_io
+//Rd32=membh(Rs32+#s11:1)
+r2=membh(r0+#0x0)
+//CHECK: 9020c002
+
+//L4_loadbsw2_ur
+//Rd32=membh(Rt32<<#u2+#U6)
+r2=membh(r0<<#0x0+#0x0)
+//CHECK: 9c20d002
+
+//L4_loadbsw2_ap
+//Rd32=membh(Re32=#U6)
+r2=membh(r8=#0x0)
+//CHECK: 9a28d002
+
+//L2_loadbsw2_pr
+//Rd32=membh(Rx32++Mu2)
+r2=membh(r6++m0)
+//CHECK: 9c26c002
+
+//L2_loadbsw2_pbr
+//Rd32=membh(Rx32++Mu2:brev)
+r2=membh(r6++m0:brev)
+//CHECK: 9e26c002
+
+//L2_loadbsw2_pi
+//Rd32=membh(Rx32++#s4:1)
+r2=membh(r6++#0x0)
+//CHECK: 9a26c002
+
+//L2_loadbsw2_pci
+//Rd32=membh(Rx32++#s4:1:circ(Mu2))
+r2=membh(r6++#0x0:circ(m0))
+//CHECK: 9826c002
+
+//L2_loadbsw2_pcr
+//Rd32=membh(Rx32++I:circ(Mu2))
+r2=membh(r6++i:circ(m0))
+//CHECK: 9826c202
+
+//L2_loadbsw4_io
+//Rdd32=membh(Rs32+#s11:2)
+r3:2=membh(r0+#0x0)
+//CHECK: 90e0c002
+
+//L4_loadbsw4_ur
+//Rdd32=membh(Rt32<<#u2+#U6)
+r3:2=membh(r0<<#0x0+#0x0)
+//CHECK: 9ce0d002
+
+//L4_loadbsw4_ap
+//Rdd32=membh(Re32=#U6)
+r3:2=membh(r8=#0x0)
+//CHECK: 9ae8d002
+
+//L2_loadbsw4_pr
+//Rdd32=membh(Rx32++Mu2)
+r3:2=membh(r6++m0)
+//CHECK: 9ce6c002
+
+//L2_loadbsw4_pbr
+//Rdd32=membh(Rx32++Mu2:brev)
+r3:2=membh(r6++m0:brev)
+//CHECK: 9ee6c002
+
+//L2_loadbsw4_pi
+//Rdd32=membh(Rx32++#s4:2)
+r3:2=membh(r6++#0x0)
+//CHECK: 9ae6c002
+
+//L2_loadbsw4_pci
+//Rdd32=membh(Rx32++#s4:2:circ(Mu2))
+r3:2=membh(r6++#0x0:circ(m0))
+//CHECK: 98e6c002
+
+//L2_loadbsw4_pcr
+//Rdd32=membh(Rx32++I:circ(Mu2))
+r3:2=membh(r6++i:circ(m0))
+//CHECK: 98e6c202
+
+//L2_loadalignh_io
+//Ryy32=memh_fifo(Rs32+#s11:1)
+r5:4=memh_fifo(r0+#0x0)
+//CHECK: 9040c004
+
+//L4_loadalignh_ur
+//Ryy32=memh_fifo(Rt32<<#u2+#U6)
+r5:4=memh_fifo(r0<<#0x0+#0x0)
+//CHECK: 9c40d004
+
+//L4_loadalignh_ap
+//Ryy32=memh_fifo(Re32=#U6)
+r5:4=memh_fifo(r8=#0x0)
+//CHECK: 9a48d004
+
+//L2_loadalignh_pr
+//Ryy32=memh_fifo(Rx32++Mu2)
+r5:4=memh_fifo(r6++m0)
+//CHECK: 9c46c004
+
+//L2_loadalignh_pbr
+//Ryy32=memh_fifo(Rx32++Mu2:brev)
+r5:4=memh_fifo(r6++m0:brev)
+//CHECK: 9e46c004
+
+//L2_loadalignh_pi
+//Ryy32=memh_fifo(Rx32++#s4:1)
+r5:4=memh_fifo(r6++#0x0)
+//CHECK: 9a46c004
+
+//L2_loadalignh_pci
+//Ryy32=memh_fifo(Rx32++#s4:1:circ(Mu2))
+r5:4=memh_fifo(r6++#0x0:circ(m0))
+//CHECK: 9846c004
+
+//L2_loadalignh_pcr
+//Ryy32=memh_fifo(Rx32++I:circ(Mu2))
+r5:4=memh_fifo(r6++i:circ(m0))
+//CHECK: 9846c204
+
+//L2_loadalignb_io
+//Ryy32=memb_fifo(Rs32+#s11:0)
+r5:4=memb_fifo(r0+#0x0)
+//CHECK: 9080c004
+
+//L4_loadalignb_ur
+//Ryy32=memb_fifo(Rt32<<#u2+#U6)
+r5:4=memb_fifo(r0<<#0x0+#0x0)
+//CHECK: 9c80d004
+
+//L4_loadalignb_ap
+//Ryy32=memb_fifo(Re32=#U6)
+r5:4=memb_fifo(r8=#0x0)
+//CHECK: 9a88d004
+
+//L2_loadalignb_pr
+//Ryy32=memb_fifo(Rx32++Mu2)
+r5:4=memb_fifo(r6++m0)
+//CHECK: 9c86c004
+
+//L2_loadalignb_pbr
+//Ryy32=memb_fifo(Rx32++Mu2:brev)
+r5:4=memb_fifo(r6++m0:brev)
+//CHECK: 9e86c004
+
+//L2_loadalignb_pi
+//Ryy32=memb_fifo(Rx32++#s4:0)
+r5:4=memb_fifo(r6++#0x0)
+//CHECK: 9a86c004
+
+//L2_loadalignb_pci
+//Ryy32=memb_fifo(Rx32++#s4:0:circ(Mu2))
+r5:4=memb_fifo(r6++#0x0:circ(m0))
+//CHECK: 9886c004
+
+//L2_loadalignb_pcr
+//Ryy32=memb_fifo(Rx32++I:circ(Mu2))
+r5:4=memb_fifo(r6++i:circ(m0))
+//CHECK: 9886c204
+
+//S2_storerb_io
+//memb(Rs32+#s11:0)=Rt32
+memb(r0+#0x0)=r0
+//CHECK: a100c000
+
+//S2_storerb_pi
+//memb(Rx32++#s4:0)=Rt32
+memb(r6++#0x0)=r0
+//CHECK: ab06c000
+
+//S4_storerb_ap
+//memb(Re32=#U6)=Rt32
+memb(r8=#0x0)=r0
+//CHECK: ab08c080
+
+//S2_storerb_pr
+//memb(Rx32++Mu2)=Rt32
+memb(r6++m0)=r0
+//CHECK: ad06c000
+
+//S4_storerb_ur
+//memb(Ru32<<#u2+#U6)=Rt32
+memb(r0<<#0x0+#0x0)=r0
+//CHECK: ad00c080
+
+//S2_storerb_pbr
+//memb(Rx32++Mu2:brev)=Rt32
+memb(r6++m0:brev)=r0
+//CHECK: af06c000
+
+//S2_storerb_pci
+//memb(Rx32++#s4:0:circ(Mu2))=Rt32
+memb(r6++#0x0:circ(m0))=r0
+//CHECK: a906c000
+
+//S2_storerb_pcr
+//memb(Rx32++I:circ(Mu2))=Rt32
+memb(r6++i:circ(m0))=r0
+//CHECK: a906c002
+
+//S2_storerh_io
+//memh(Rs32+#s11:1)=Rt32
+memh(r0+#0x0)=r0
+//CHECK: a140c000
+
+//S2_storerh_pi
+//memh(Rx32++#s4:1)=Rt32
+memh(r6++#0x0)=r0
+//CHECK: ab46c000
+
+//S4_storerh_ap
+//memh(Re32=#U6)=Rt32
+memh(r8=#0x0)=r0
+//CHECK: ab48c080
+
+//S2_storerh_pr
+//memh(Rx32++Mu2)=Rt32
+memh(r6++m0)=r0
+//CHECK: ad46c000
+
+//S4_storerh_ur
+//memh(Ru32<<#u2+#U6)=Rt32
+memh(r0<<#0x0+#0x0)=r0
+//CHECK: ad40c080
+
+//S2_storerh_pbr
+//memh(Rx32++Mu2:brev)=Rt32
+memh(r6++m0:brev)=r0
+//CHECK: af46c000
+
+//S2_storerh_pci
+//memh(Rx32++#s4:1:circ(Mu2))=Rt32
+memh(r6++#0x0:circ(m0))=r0
+//CHECK: a946c000
+
+//S2_storerh_pcr
+//memh(Rx32++I:circ(Mu2))=Rt32
+memh(r6++i:circ(m0))=r0
+//CHECK: a946c002
+
+//S2_storerf_io
+//memh(Rs32+#s11:1)=Rt32.h
+memh(r0+#0x0)=r0.h
+//CHECK: a160c000
+
+//S2_storerf_pi
+//memh(Rx32++#s4:1)=Rt32.h
+memh(r6++#0x0)=r0.h
+//CHECK: ab66c000
+
+//S4_storerf_ap
+//memh(Re32=#U6)=Rt32.h
+memh(r8=#0x0)=r0.h
+//CHECK: ab68c080
+
+//S2_storerf_pr
+//memh(Rx32++Mu2)=Rt32.h
+memh(r6++m0)=r0.h
+//CHECK: ad66c000
+
+//S4_storerf_ur
+//memh(Ru32<<#u2+#U6)=Rt32.h
+memh(r0<<#0x0+#0x0)=r0.h
+//CHECK: ad60c080
+
+//S2_storerf_pbr
+//memh(Rx32++Mu2:brev)=Rt32.h
+memh(r6++m0:brev)=r0.h
+//CHECK: af66c000
+
+//S2_storerf_pci
+//memh(Rx32++#s4:1:circ(Mu2))=Rt32.h
+memh(r6++#0x0:circ(m0))=r0.h
+//CHECK: a966c000
+
+//S2_storerf_pcr
+//memh(Rx32++I:circ(Mu2))=Rt32.h
+memh(r6++i:circ(m0))=r0.h
+//CHECK: a966c002
+
+//S2_storeri_io
+//memw(Rs32+#s11:2)=Rt32
+memw(r0+#0x0)=r0
+//CHECK: a180c000
+
+//S2_storeri_pi
+//memw(Rx32++#s4:2)=Rt32
+memw(r6++#0x0)=r0
+//CHECK: ab86c000
+
+//S4_storeri_ap
+//memw(Re32=#U6)=Rt32
+memw(r8=#0x0)=r0
+//CHECK: ab88c080
+
+//S2_storeri_pr
+//memw(Rx32++Mu2)=Rt32
+memw(r6++m0)=r0
+//CHECK: ad86c000
+
+//S4_storeri_ur
+//memw(Ru32<<#u2+#U6)=Rt32
+memw(r0<<#0x0+#0x0)=r0
+//CHECK: ad80c080
+
+//S2_storeri_pbr
+//memw(Rx32++Mu2:brev)=Rt32
+memw(r6++m0:brev)=r0
+//CHECK: af86c000
+
+//S2_storeri_pci
+//memw(Rx32++#s4:2:circ(Mu2))=Rt32
+memw(r6++#0x0:circ(m0))=r0
+//CHECK: a986c000
+
+//S2_storeri_pcr
+//memw(Rx32++I:circ(Mu2))=Rt32
+memw(r6++i:circ(m0))=r0
+//CHECK: a986c002
+
+//S2_storerd_io
+//memd(Rs32+#s11:3)=Rtt32
+memd(r0+#0x0)=r1:0
+//CHECK: a1c0c000
+
+//S2_storerd_pi
+//memd(Rx32++#s4:3)=Rtt32
+memd(r6++#0x0)=r1:0
+//CHECK: abc6c000
+
+//S4_storerd_ap
+//memd(Re32=#U6)=Rtt32
+memd(r8=#0x0)=r1:0
+//CHECK: abc8c080
+
+//S2_storerd_pr
+//memd(Rx32++Mu2)=Rtt32
+memd(r6++m0)=r1:0
+//CHECK: adc6c000
+
+//S4_storerd_ur
+//memd(Ru32<<#u2+#U6)=Rtt32
+memd(r0<<#0x0+#0x0)=r1:0
+//CHECK: adc0c080
+
+//S2_storerd_pbr
+//memd(Rx32++Mu2:brev)=Rtt32
+memd(r6++m0:brev)=r1:0
+//CHECK: afc6c000
+
+//S2_storerd_pci
+//memd(Rx32++#s4:3:circ(Mu2))=Rtt32
+memd(r6++#0x0:circ(m0))=r1:0
+//CHECK: a9c6c000
+
+//S2_storerd_pcr
+//memd(Rx32++I:circ(Mu2))=Rtt32
+memd(r6++i:circ(m0))=r1:0
+//CHECK: a9c6c002
+
+//S2_storerinew_io
+//memw(Rs32+#s11:2)=Nt8.new
+{
+    r0=r1
+    memw(r0+#0x0)=r0.new
+}
+//CHECK: a1a0d200
+
+//S2_storerinew_pi
+//memw(Rx32++#s4:2)=Nt8.new
+{
+    r0=r1
+    memw(r6++#0x0)=r0.new
+}
+//CHECK: aba6d200
+
+//S4_storerinew_ap
+//memw(Re32=#U6)=Nt8.new
+{
+    r0=r1
+    memw(r8=#0x0)=r0.new
+}
+//CHECK: aba8d280
+
+//S2_storerinew_pr
+//memw(Rx32++Mu2)=Nt8.new
+{
+    r0=r1
+    memw(r6++m0)=r0.new
+}
+//CHECK: ada6d200
+
+//S4_storerinew_ur
+//memw(Ru32<<#u2+#U6)=Nt8.new
+{
+    r0=r1
+    memw(r0<<#0x0+#0x0)=r0.new
+}
+//CHECK: ada0d280
+
+//S2_storerinew_pbr
+//memw(Rx32++Mu2:brev)=Nt8.new
+{
+    r0=r1
+    memw(r6++m0:brev)=r0.new
+}
+//CHECK: afa6d200
+
+//S2_storerinew_pci
+//memw(Rx32++#s4:2:circ(Mu2))=Nt8.new
+{
+    r0=r1
+    memw(r6++#0x0:circ(m0))=r0.new
+}
+//CHECK: a9a6d200
+
+//S2_storerinew_pcr
+//memw(Rx32++I:circ(Mu2))=Nt8.new
+{
+    r0=r1
+    memw(r6++i:circ(m0))=r0.new
+}
+//CHECK: a9a6d202
+
+//S2_storerbnew_io
+//memb(Rs32+#s11:0)=Nt8.new
+{
+    r0=r1
+    memb(r0+#0x0)=r0.new
+}
+//CHECK: a1a0c200
+
+//S2_storerbnew_pi
+//memb(Rx32++#s4:0)=Nt8.new
+{
+    r0=r1
+    memb(r6++#0x0)=r0.new
+}
+//CHECK: aba6c200
+
+//S4_storerbnew_ap
+//memb(Re32=#U6)=Nt8.new
+{
+    r0=r1
+    memb(r8=#0x0)=r0.new
+}
+//CHECK: aba8c280
+
+//S2_storerbnew_pr
+//memb(Rx32++Mu2)=Nt8.new
+{
+    r0=r1
+    memb(r6++m0)=r0.new
+}
+//CHECK: ada6c200
+
+//S4_storerbnew_ur
+//memb(Ru32<<#u2+#U6)=Nt8.new
+{
+    r0=r1
+    memb(r0<<#0x0+#0x0)=r0.new
+}
+//CHECK: ada0c280
+
+//S2_storerbnew_pbr
+//memb(Rx32++Mu2:brev)=Nt8.new
+{
+    r0=r1
+    memb(r6++m0:brev)=r0.new
+}
+//CHECK: afa6c200
+
+//S2_storerbnew_pci
+//memb(Rx32++#s4:0:circ(Mu2))=Nt8.new
+{
+    r0=r1
+    memb(r6++#0x0:circ(m0))=r0.new
+}
+//CHECK: a9a6c200
+
+//S2_storerbnew_pcr
+//memb(Rx32++I:circ(Mu2))=Nt8.new
+{
+    r0=r1
+    memb(r6++i:circ(m0))=r0.new
+}
+//CHECK: a9a6c202
+
+//S2_storerhnew_io
+//memh(Rs32+#s11:1)=Nt8.new
+{
+    r0=r1
+    memh(r0+#0x0)=r0.new
+}
+//CHECK: a1a0ca00
+
+//S2_storerhnew_pi
+//memh(Rx32++#s4:1)=Nt8.new
+{
+    r0=r1
+    memh(r6++#0x0)=r0.new
+}
+//CHECK: aba6ca00
+
+//S4_storerhnew_ap
+//memh(Re32=#U6)=Nt8.new
+{
+    r0=r1
+    memh(r8=#0x0)=r0.new
+}
+//CHECK: aba8ca80
+
+//S2_storerhnew_pr
+//memh(Rx32++Mu2)=Nt8.new
+{
+    r0=r1
+    memh(r6++m0)=r0.new
+}
+//CHECK: ada6ca00
+
+//S4_storerhnew_ur
+//memh(Ru32<<#u2+#U6)=Nt8.new
+{
+    r0=r1
+    memh(r0<<#0x0+#0x0)=r0.new
+}
+//CHECK: ada0ca80
+
+//S2_storerhnew_pbr
+//memh(Rx32++Mu2:brev)=Nt8.new
+{
+    r0=r1
+    memh(r6++m0:brev)=r0.new
+}
+//CHECK: afa6ca00
+
+//S2_storerhnew_pci
+//memh(Rx32++#s4:1:circ(Mu2))=Nt8.new
+{
+    r0=r1
+    memh(r6++#0x0:circ(m0))=r0.new
+}
+//CHECK: a9a6ca00
+
+//S2_storerhnew_pcr
+//memh(Rx32++I:circ(Mu2))=Nt8.new
+{
+    r0=r1
+    memh(r6++i:circ(m0))=r0.new
+}
+//CHECK: a9a6ca02
+
+//S2_allocframe
+//allocframe(Rx32,#u11:3):raw
+allocframe(r6,#0x0):raw
+//CHECK: a086c000
+
+//L2_deallocframe
+//Rdd32=deallocframe(Rs32):raw
+r3:2=deallocframe(r0):raw
+//CHECK: 9000c002
+
+//L4_return
+//Rdd32=dealloc_return(Rs32):raw
+r3:2=dealloc_return(r0):raw
+//CHECK: 9600c002
+
+//L4_return_t
+//if (Pv4) Rdd32=dealloc_return(Rs32):raw
+if (p0) r3:2=dealloc_return(r0):raw
+//CHECK: 9600d002
+
+//L4_return_f
+//if (!Pv4) Rdd32=dealloc_return(Rs32):raw
+if (!p0) r3:2=dealloc_return(r0):raw
+//CHECK: 9600f002
+
+//L4_return_tnew_pt
+//if (Pv4.new) Rdd32=dealloc_return(Rs32):t:raw
+{
+    p0=p1
+    if (p0.new) r3:2=dealloc_return(r0):t:raw
+}
+//CHECK: 9600d802
+
+//L4_return_fnew_pt
+//if (!Pv4.new) Rdd32=dealloc_return(Rs32):t:raw
+{
+    p0=p1
+    if (!p0.new) r3:2=dealloc_return(r0):t:raw
+}
+//CHECK: 9600f802
+
+//L4_return_tnew_pnt
+//if (Pv4.new) Rdd32=dealloc_return(Rs32):nt:raw
+{
+    p0=p1
+    if (p0.new) r3:2=dealloc_return(r0):nt:raw
+}
+//CHECK: 9600c802
+
+//L4_return_fnew_pnt
+//if (!Pv4.new) Rdd32=dealloc_return(Rs32):nt:raw
+{
+    p0=p1
+    if (!p0.new) r3:2=dealloc_return(r0):nt:raw
+}
+//CHECK: 9600e802
+
+//L2_loadw_locked
+//Rd32=memw_locked(Rs32)
+r2=memw_locked(r0)
+//CHECK: 9200c002
+
+//S2_storew_locked
+//memw_locked(Rs32,Pd4)=Rt32
+memw_locked(r0,p0)=r0
+//CHECK: a0a0c000
+
+//L4_loadd_locked
+//Rdd32=memd_locked(Rs32)
+r3:2=memd_locked(r0)
+//CHECK: 9200d002
+
+//L4_loadw_phys
+//Rd32=memw_phys(Rs32,Rt32)
+r2=memw_phys(r0,r0)
+//CHECK: 9200e002
+
+//S4_stored_locked
+//memd_locked(Rs32,Pd4)=Rtt32
+memd_locked(r0,p0)=r1:0
+//CHECK: a0e0c000
+
+//L4_loadrub_rr
+//Rd32=memub(Rs32+Rt32<<#u2)
+r2=memub(r0+r0<<#0x0)
+//CHECK: 3a20c002
+
+//L2_ploadrubt_io
+//if (Pt4) Rd32=memub(Rs32+#u6:0)
+if (p0) r2=memub(r0+#0x0)
+//CHECK: 4120c002
+
+//L2_ploadrubt_pi
+//if (Pt4) Rd32=memub(Rx32++#s4:0)
+if (p0) r2=memub(r6++#0x0)
+//CHECK: 9b26e002
+
+//L2_ploadrubf_io
+//if (!Pt4) Rd32=memub(Rs32+#u6:0)
+if (!p0) r2=memub(r0+#0x0)
+//CHECK: 4520c002
+
+//L2_ploadrubf_pi
+//if (!Pt4) Rd32=memub(Rx32++#s4:0)
+if (!p0) r2=memub(r6++#0x0)
+//CHECK: 9b26e802
+
+//L2_ploadrubtnew_io
+//if (Pt4.new) Rd32=memub(Rs32+#u6:0)
+{
+    p0=p1
+    if (p0.new) r2=memub(r0+#0x0)
+}
+//CHECK: 4320c002
+
+//L2_ploadrubfnew_io
+//if (!Pt4.new) Rd32=memub(Rs32+#u6:0)
+{
+    p0=p1
+    if (!p0.new) r2=memub(r0+#0x0)
+}
+//CHECK: 4720c002
+
+//L4_ploadrubt_rr
+//if (Pv4) Rd32=memub(Rs32+Rt32<<#u2)
+if (p0) r2=memub(r0+r0<<#0x0)
+//CHECK: 3020c002
+
+//L4_ploadrubf_rr
+//if (!Pv4) Rd32=memub(Rs32+Rt32<<#u2)
+if (!p0) r2=memub(r0+r0<<#0x0)
+//CHECK: 3120c002
+
+//L4_ploadrubtnew_rr
+//if (Pv4.new) Rd32=memub(Rs32+Rt32<<#u2)
+{
+    p0=p1
+    if (p0.new) r2=memub(r0+r0<<#0x0)
+}
+//CHECK: 3220c002
+
+//L4_ploadrubfnew_rr
+//if (!Pv4.new) Rd32=memub(Rs32+Rt32<<#u2)
+{
+    p0=p1
+    if (!p0.new) r2=memub(r0+r0<<#0x0)
+}
+//CHECK: 3320c002
+
+//L2_ploadrubtnew_pi
+//if (Pt4.new) Rd32=memub(Rx32++#s4:0)
+{
+    p0=p1
+    if (p0.new) r2=memub(r6++#0x0)
+}
+//CHECK: 9b26f002
+
+//L2_ploadrubfnew_pi
+//if (!Pt4.new) Rd32=memub(Rx32++#s4:0)
+{
+    p0=p1
+    if (!p0.new) r2=memub(r6++#0x0)
+}
+//CHECK: 9b26f802
+
+//L4_ploadrubt_abs
+//if (Pt4) Rd32=memub(#u6)
+if (p0) r2=memub(#0x0)
+//CHECK: 9f20e082
+
+//L4_ploadrubf_abs
+//if (!Pt4) Rd32=memub(#u6)
+if (!p0) r2=memub(#0x0)
+//CHECK: 9f20e882
+
+//L4_ploadrubtnew_abs
+//if (Pt4.new) Rd32=memub(#u6)
+{
+    p0=p1
+    if (p0.new) r2=memub(#0x0)
+}
+//CHECK: 9f20f082
+
+//L4_ploadrubfnew_abs
+//if (!Pt4.new) Rd32=memub(#u6)
+{
+    p0=p1
+    if (!p0.new) r2=memub(#0x0)
+}
+//CHECK: 9f20f882
+
+//L4_loadrb_rr
+//Rd32=memb(Rs32+Rt32<<#u2)
+r2=memb(r0+r0<<#0x0)
+//CHECK: 3a00c002
+
+//L2_ploadrbt_io
+//if (Pt4) Rd32=memb(Rs32+#u6:0)
+if (p0) r2=memb(r0+#0x0)
+//CHECK: 4100c002
+
+//L2_ploadrbt_pi
+//if (Pt4) Rd32=memb(Rx32++#s4:0)
+if (p0) r2=memb(r6++#0x0)
+//CHECK: 9b06e002
+
+//L2_ploadrbf_io
+//if (!Pt4) Rd32=memb(Rs32+#u6:0)
+if (!p0) r2=memb(r0+#0x0)
+//CHECK: 4500c002
+
+//L2_ploadrbf_pi
+//if (!Pt4) Rd32=memb(Rx32++#s4:0)
+if (!p0) r2=memb(r6++#0x0)
+//CHECK: 9b06e802
+
+//L2_ploadrbtnew_io
+//if (Pt4.new) Rd32=memb(Rs32+#u6:0)
+{
+    p0=p1
+    if (p0.new) r2=memb(r0+#0x0)
+}
+//CHECK: 4300c002
+
+//L2_ploadrbfnew_io
+//if (!Pt4.new) Rd32=memb(Rs32+#u6:0)
+{
+    p0=p1
+    if (!p0.new) r2=memb(r0+#0x0)
+}
+//CHECK: 4700c002
+
+//L4_ploadrbt_rr
+//if (Pv4) Rd32=memb(Rs32+Rt32<<#u2)
+if (p0) r2=memb(r0+r0<<#0x0)
+//CHECK: 3000c002
+
+//L4_ploadrbf_rr
+//if (!Pv4) Rd32=memb(Rs32+Rt32<<#u2)
+if (!p0) r2=memb(r0+r0<<#0x0)
+//CHECK: 3100c002
+
+//L4_ploadrbtnew_rr
+//if (Pv4.new) Rd32=memb(Rs32+Rt32<<#u2)
+{
+    p0=p1
+    if (p0.new) r2=memb(r0+r0<<#0x0)
+}
+//CHECK: 3200c002
+
+//L4_ploadrbfnew_rr
+//if (!Pv4.new) Rd32=memb(Rs32+Rt32<<#u2)
+{
+    p0=p1
+    if (!p0.new) r2=memb(r0+r0<<#0x0)
+}
+//CHECK: 3300c002
+
+//L2_ploadrbtnew_pi
+//if (Pt4.new) Rd32=memb(Rx32++#s4:0)
+{
+    p0=p1
+    if (p0.new) r2=memb(r6++#0x0)
+}
+//CHECK: 9b06f002
+
+//L2_ploadrbfnew_pi
+//if (!Pt4.new) Rd32=memb(Rx32++#s4:0)
+{
+    p0=p1
+    if (!p0.new) r2=memb(r6++#0x0)
+}
+//CHECK: 9b06f802
+
+//L4_ploadrbt_abs
+//if (Pt4) Rd32=memb(#u6)
+if (p0) r2=memb(#0x0)
+//CHECK: 9f00e082
+
+//L4_ploadrbf_abs
+//if (!Pt4) Rd32=memb(#u6)
+if (!p0) r2=memb(#0x0)
+//CHECK: 9f00e882
+
+//L4_ploadrbtnew_abs
+//if (Pt4.new) Rd32=memb(#u6)
+{
+    p0=p1
+    if (p0.new) r2=memb(#0x0)
+}
+//CHECK: 9f00f082
+
+//L4_ploadrbfnew_abs
+//if (!Pt4.new) Rd32=memb(#u6)
+{
+    p0=p1
+    if (!p0.new) r2=memb(#0x0)
+}
+//CHECK: 9f00f882
+
+//L4_loadruh_rr
+//Rd32=memuh(Rs32+Rt32<<#u2)
+r2=memuh(r0+r0<<#0x0)
+//CHECK: 3a60c002
+
+//L2_ploadruht_io
+//if (Pt4) Rd32=memuh(Rs32+#u6:1)
+if (p0) r2=memuh(r0+#0x0)
+//CHECK: 4160c002
+
+//L2_ploadruht_pi
+//if (Pt4) Rd32=memuh(Rx32++#s4:1)
+if (p0) r2=memuh(r6++#0x0)
+//CHECK: 9b66e002
+
+//L2_ploadruhf_io
+//if (!Pt4) Rd32=memuh(Rs32+#u6:1)
+if (!p0) r2=memuh(r0+#0x0)
+//CHECK: 4560c002
+
+//L2_ploadruhf_pi
+//if (!Pt4) Rd32=memuh(Rx32++#s4:1)
+if (!p0) r2=memuh(r6++#0x0)
+//CHECK: 9b66e802
+
+//L2_ploadruhtnew_io
+//if (Pt4.new) Rd32=memuh(Rs32+#u6:1)
+{
+    p0=p1
+    if (p0.new) r2=memuh(r0+#0x0)
+}
+//CHECK: 4360c002
+
+//L2_ploadruhfnew_io
+//if (!Pt4.new) Rd32=memuh(Rs32+#u6:1)
+{
+    p0=p1
+    if (!p0.new) r2=memuh(r0+#0x0)
+}
+//CHECK: 4760c002
+
+//L4_ploadruht_rr
+//if (Pv4) Rd32=memuh(Rs32+Rt32<<#u2)
+if (p0) r2=memuh(r0+r0<<#0x0)
+//CHECK: 3060c002
+
+//L4_ploadruhf_rr
+//if (!Pv4) Rd32=memuh(Rs32+Rt32<<#u2)
+if (!p0) r2=memuh(r0+r0<<#0x0)
+//CHECK: 3160c002
+
+//L4_ploadruhtnew_rr
+//if (Pv4.new) Rd32=memuh(Rs32+Rt32<<#u2)
+{
+    p0=p1
+    if (p0.new) r2=memuh(r0+r0<<#0x0)
+}
+//CHECK: 3260c002
+
+//L4_ploadruhfnew_rr
+//if (!Pv4.new) Rd32=memuh(Rs32+Rt32<<#u2)
+{
+    p0=p1
+    if (!p0.new) r2=memuh(r0+r0<<#0x0)
+}
+//CHECK: 3360c002
+
+//L2_ploadruhtnew_pi
+//if (Pt4.new) Rd32=memuh(Rx32++#s4:1)
+{
+    p0=p1
+    if (p0.new) r2=memuh(r6++#0x0)
+}
+//CHECK: 9b66f002
+
+//L2_ploadruhfnew_pi
+//if (!Pt4.new) Rd32=memuh(Rx32++#s4:1)
+{
+    p0=p1
+    if (!p0.new) r2=memuh(r6++#0x0)
+}
+//CHECK: 9b66f802
+
+//L4_ploadruht_abs
+//if (Pt4) Rd32=memuh(#u6)
+if (p0) r2=memuh(#0x0)
+//CHECK: 9f60e082
+
+//L4_ploadruhf_abs
+//if (!Pt4) Rd32=memuh(#u6)
+if (!p0) r2=memuh(#0x0)
+//CHECK: 9f60e882
+
+//L4_ploadruhtnew_abs
+//if (Pt4.new) Rd32=memuh(#u6)
+{
+    p0=p1
+    if (p0.new) r2=memuh(#0x0)
+}
+//CHECK: 9f60f082
+
+//L4_ploadruhfnew_abs
+//if (!Pt4.new) Rd32=memuh(#u6)
+{
+    p0=p1
+    if (!p0.new) r2=memuh(#0x0)
+}
+//CHECK: 9f60f882
+
+//L4_loadrh_rr
+//Rd32=memh(Rs32+Rt32<<#u2)
+r2=memh(r0+r0<<#0x0)
+//CHECK: 3a40c002
+
+//L2_ploadrht_io
+//if (Pt4) Rd32=memh(Rs32+#u6:1)
+if (p0) r2=memh(r0+#0x0)
+//CHECK: 4140c002
+
+//L2_ploadrht_pi
+//if (Pt4) Rd32=memh(Rx32++#s4:1)
+if (p0) r2=memh(r6++#0x0)
+//CHECK: 9b46e002
+
+//L2_ploadrhf_io
+//if (!Pt4) Rd32=memh(Rs32+#u6:1)
+if (!p0) r2=memh(r0+#0x0)
+//CHECK: 4540c002
+
+//L2_ploadrhf_pi
+//if (!Pt4) Rd32=memh(Rx32++#s4:1)
+if (!p0) r2=memh(r6++#0x0)
+//CHECK: 9b46e802
+
+//L2_ploadrhtnew_io
+//if (Pt4.new) Rd32=memh(Rs32+#u6:1)
+{
+    p0=p1
+    if (p0.new) r2=memh(r0+#0x0)
+}
+//CHECK: 4340c002
+
+//L2_ploadrhfnew_io
+//if (!Pt4.new) Rd32=memh(Rs32+#u6:1)
+{
+    p0=p1
+    if (!p0.new) r2=memh(r0+#0x0)
+}
+//CHECK: 4740c002
+
+//L4_ploadrht_rr
+//if (Pv4) Rd32=memh(Rs32+Rt32<<#u2)
+if (p0) r2=memh(r0+r0<<#0x0)
+//CHECK: 3040c002
+
+//L4_ploadrhf_rr
+//if (!Pv4) Rd32=memh(Rs32+Rt32<<#u2)
+if (!p0) r2=memh(r0+r0<<#0x0)
+//CHECK: 3140c002
+
+//L4_ploadrhtnew_rr
+//if (Pv4.new) Rd32=memh(Rs32+Rt32<<#u2)
+{
+    p0=p1
+    if (p0.new) r2=memh(r0+r0<<#0x0)
+}
+//CHECK: 3240c002
+
+//L4_ploadrhfnew_rr
+//if (!Pv4.new) Rd32=memh(Rs32+Rt32<<#u2)
+{
+    p0=p1
+    if (!p0.new) r2=memh(r0+r0<<#0x0)
+}
+//CHECK: 3340c002
+
+//L2_ploadrhtnew_pi
+//if (Pt4.new) Rd32=memh(Rx32++#s4:1)
+{
+    p0=p1
+    if (p0.new) r2=memh(r6++#0x0)
+}
+//CHECK: 9b46f002
+
+//L2_ploadrhfnew_pi
+//if (!Pt4.new) Rd32=memh(Rx32++#s4:1)
+{
+    p0=p1
+    if (!p0.new) r2=memh(r6++#0x0)
+}
+//CHECK: 9b46f802
+
+//L4_ploadrht_abs
+//if (Pt4) Rd32=memh(#u6)
+if (p0) r2=memh(#0x0)
+//CHECK: 9f40e082
+
+//L4_ploadrhf_abs
+//if (!Pt4) Rd32=memh(#u6)
+if (!p0) r2=memh(#0x0)
+//CHECK: 9f40e882
+
+//L4_ploadrhtnew_abs
+//if (Pt4.new) Rd32=memh(#u6)
+{
+    p0=p1
+    if (p0.new) r2=memh(#0x0)
+}
+//CHECK: 9f40f082
+
+//L4_ploadrhfnew_abs
+//if (!Pt4.new) Rd32=memh(#u6)
+{
+    p0=p1
+    if (!p0.new) r2=memh(#0x0)
+}
+//CHECK: 9f40f882
+
+//L4_loadri_rr
+//Rd32=memw(Rs32+Rt32<<#u2)
+r2=memw(r0+r0<<#0x0)
+//CHECK: 3a80c002
+
+//L2_ploadrit_io
+//if (Pt4) Rd32=memw(Rs32+#u6:2)
+if (p0) r2=memw(r0+#0x0)
+//CHECK: 4180c002
+
+//L2_ploadrit_pi
+//if (Pt4) Rd32=memw(Rx32++#s4:2)
+if (p0) r2=memw(r6++#0x0)
+//CHECK: 9b86e002
+
+//L2_ploadrif_io
+//if (!Pt4) Rd32=memw(Rs32+#u6:2)
+if (!p0) r2=memw(r0+#0x0)
+//CHECK: 4580c002
+
+//L2_ploadrif_pi
+//if (!Pt4) Rd32=memw(Rx32++#s4:2)
+if (!p0) r2=memw(r6++#0x0)
+//CHECK: 9b86e802
+
+//L2_ploadritnew_io
+//if (Pt4.new) Rd32=memw(Rs32+#u6:2)
+{
+    p0=p1
+    if (p0.new) r2=memw(r0+#0x0)
+}
+//CHECK: 4380c002
+
+//L2_ploadrifnew_io
+//if (!Pt4.new) Rd32=memw(Rs32+#u6:2)
+{
+    p0=p1
+    if (!p0.new) r2=memw(r0+#0x0)
+}
+//CHECK: 4780c002
+
+//L4_ploadrit_rr
+//if (Pv4) Rd32=memw(Rs32+Rt32<<#u2)
+if (p0) r2=memw(r0+r0<<#0x0)
+//CHECK: 3080c002
+
+//L4_ploadrif_rr
+//if (!Pv4) Rd32=memw(Rs32+Rt32<<#u2)
+if (!p0) r2=memw(r0+r0<<#0x0)
+//CHECK: 3180c002
+
+//L4_ploadritnew_rr
+//if (Pv4.new) Rd32=memw(Rs32+Rt32<<#u2)
+{
+    p0=p1
+    if (p0.new) r2=memw(r0+r0<<#0x0)
+}
+//CHECK: 3280c002
+
+//L4_ploadrifnew_rr
+//if (!Pv4.new) Rd32=memw(Rs32+Rt32<<#u2)
+{
+    p0=p1
+    if (!p0.new) r2=memw(r0+r0<<#0x0)
+}
+//CHECK: 3380c002
+
+//L2_ploadritnew_pi
+//if (Pt4.new) Rd32=memw(Rx32++#s4:2)
+{
+    p0=p1
+    if (p0.new) r2=memw(r6++#0x0)
+}
+//CHECK: 9b86f002
+
+//L2_ploadrifnew_pi
+//if (!Pt4.new) Rd32=memw(Rx32++#s4:2)
+{
+    p0=p1
+    if (!p0.new) r2=memw(r6++#0x0)
+}
+//CHECK: 9b86f802
+
+//L4_ploadrit_abs
+//if (Pt4) Rd32=memw(#u6)
+if (p0) r2=memw(#0x0)
+//CHECK: 9f80e082
+
+//L4_ploadrif_abs
+//if (!Pt4) Rd32=memw(#u6)
+if (!p0) r2=memw(#0x0)
+//CHECK: 9f80e882
+
+//L4_ploadritnew_abs
+//if (Pt4.new) Rd32=memw(#u6)
+{
+    p0=p1
+    if (p0.new) r2=memw(#0x0)
+}
+//CHECK: 9f80f082
+
+//L4_ploadrifnew_abs
+//if (!Pt4.new) Rd32=memw(#u6)
+{
+    p0=p1
+    if (!p0.new) r2=memw(#0x0)
+}
+//CHECK: 9f80f882
+
+//L4_loadrd_rr
+//Rdd32=memd(Rs32+Rt32<<#u2)
+r3:2=memd(r0+r0<<#0x0)
+//CHECK: 3ac0c002
+
+//L2_ploadrdt_io
+//if (Pt4) Rdd32=memd(Rs32+#u6:3)
+if (p0) r3:2=memd(r0+#0x0)
+//CHECK: 41c0c002
+
+//L2_ploadrdt_pi
+//if (Pt4) Rdd32=memd(Rx32++#s4:3)
+if (p0) r3:2=memd(r6++#0x0)
+//CHECK: 9bc6e002
+
+//L2_ploadrdf_io
+//if (!Pt4) Rdd32=memd(Rs32+#u6:3)
+if (!p0) r3:2=memd(r0+#0x0)
+//CHECK: 45c0c002
+
+//L2_ploadrdf_pi
+//if (!Pt4) Rdd32=memd(Rx32++#s4:3)
+if (!p0) r3:2=memd(r6++#0x0)
+//CHECK: 9bc6e802
+
+//L2_ploadrdtnew_io
+//if (Pt4.new) Rdd32=memd(Rs32+#u6:3)
+{
+    p0=p1
+    if (p0.new) r3:2=memd(r0+#0x0)
+}
+//CHECK: 43c0c002
+
+//L2_ploadrdfnew_io
+//if (!Pt4.new) Rdd32=memd(Rs32+#u6:3)
+{
+    p0=p1
+    if (!p0.new) r3:2=memd(r0+#0x0)
+}
+//CHECK: 47c0c002
+
+//L4_ploadrdt_rr
+//if (Pv4) Rdd32=memd(Rs32+Rt32<<#u2)
+if (p0) r3:2=memd(r0+r0<<#0x0)
+//CHECK: 30c0c002
+
+//L4_ploadrdf_rr
+//if (!Pv4) Rdd32=memd(Rs32+Rt32<<#u2)
+if (!p0) r3:2=memd(r0+r0<<#0x0)
+//CHECK: 31c0c002
+
+//L4_ploadrdtnew_rr
+//if (Pv4.new) Rdd32=memd(Rs32+Rt32<<#u2)
+{
+    p0=p1
+    if (p0.new) r3:2=memd(r0+r0<<#0x0)
+}
+//CHECK: 32c0c002
+
+//L4_ploadrdfnew_rr
+//if (!Pv4.new) Rdd32=memd(Rs32+Rt32<<#u2)
+{
+    p0=p1
+    if (!p0.new) r3:2=memd(r0+r0<<#0x0)
+}
+//CHECK: 33c0c002
+
+//L2_ploadrdtnew_pi
+//if (Pt4.new) Rdd32=memd(Rx32++#s4:3)
+{
+    p0=p1
+    if (p0.new) r3:2=memd(r6++#0x0)
+}
+//CHECK: 9bc6f002
+
+//L2_ploadrdfnew_pi
+//if (!Pt4.new) Rdd32=memd(Rx32++#s4:3)
+{
+    p0=p1
+    if (!p0.new) r3:2=memd(r6++#0x0)
+}
+//CHECK: 9bc6f802
+
+//L4_ploadrdt_abs
+//if (Pt4) Rdd32=memd(#u6)
+if (p0) r3:2=memd(#0x0)
+//CHECK: 9fc0e082
+
+//L4_ploadrdf_abs
+//if (!Pt4) Rdd32=memd(#u6)
+if (!p0) r3:2=memd(#0x0)
+//CHECK: 9fc0e882
+
+//L4_ploadrdtnew_abs
+//if (Pt4.new) Rdd32=memd(#u6)
+{
+    p0=p1
+    if (p0.new) r3:2=memd(#0x0)
+}
+//CHECK: 9fc0f082
+
+//L4_ploadrdfnew_abs
+//if (!Pt4.new) Rdd32=memd(#u6)
+{
+    p0=p1
+    if (!p0.new) r3:2=memd(#0x0)
+}
+//CHECK: 9fc0f882
+
+//S2_storerb_pi_nt
+//memb(Rx32++#s4:0):nt=Rt32
+memb(r6++#0x0):nt=r0
+//CHECK: aa06c000
+
+//S2_pstorerbf_pi_nt
+//if (!Pv4) memb(Rx32++#s4:0):nt=Rt32
+if (!p0) memb(r6++#0x0):nt=r0
+//CHECK: aa06e004
+
+//S2_pstorerbt_pi_nt
+//if (Pv4) memb(Rx32++#s4:0):nt=Rt32
+if (p0) memb(r6++#0x0):nt=r0
+//CHECK: aa06e000
+
+//S2_storerh_pi_nt
+//memh(Rx32++#s4:1):nt=Rt32
+memh(r6++#0x0):nt=r0
+//CHECK: aa46c000
+
+//S2_pstorerhf_pi_nt
+//if (!Pv4) memh(Rx32++#s4:1):nt=Rt32
+if (!p0) memh(r6++#0x0):nt=r0
+//CHECK: aa46e004
+
+//S2_pstorerht_pi_nt
+//if (Pv4) memh(Rx32++#s4:1):nt=Rt32
+if (p0) memh(r6++#0x0):nt=r0
+//CHECK: aa46e000
+
+//S2_storeri_pi_nt
+//memw(Rx32++#s4:2):nt=Rt32
+memw(r6++#0x0):nt=r0
+//CHECK: aa86c000
+
+//S2_pstorerif_pi_nt
+//if (!Pv4) memw(Rx32++#s4:2):nt=Rt32
+if (!p0) memw(r6++#0x0):nt=r0
+//CHECK: aa86e004
+
+//S2_pstorerit_pi_nt
+//if (Pv4) memw(Rx32++#s4:2):nt=Rt32
+if (p0) memw(r6++#0x0):nt=r0
+//CHECK: aa86e000
+
+//S2_storerd_pi_nt
+//memd(Rx32++#s4:3):nt=Rtt32
+memd(r6++#0x0):nt=r1:0
+//CHECK: aac6c000
+
+//S2_pstorerdf_pi_nt
+//if (!Pv4) memd(Rx32++#s4:3):nt=Rtt32
+if (!p0) memd(r6++#0x0):nt=r1:0
+//CHECK: aac6e004
+
+//S2_pstorerdt_pi_nt
+//if (Pv4) memd(Rx32++#s4:3):nt=Rtt32
+if (p0) memd(r6++#0x0):nt=r1:0
+//CHECK: aac6e000
+
+//S4_storerb_rr
+//memb(Rs32+Ru32<<#u2)=Rt32
+memb(r0+r0<<#0x0)=r0
+//CHECK: 3b00c000
+
+//S2_pstorerbt_io
+//if (Pv4) memb(Rs32+#u6:0)=Rt32
+if (p0) memb(r0+#0x0)=r0
+//CHECK: 4000c000
+
+//S2_pstorerbt_pi
+//if (Pv4) memb(Rx32++#s4:0)=Rt32
+if (p0) memb(r6++#0x0)=r0
+//CHECK: ab06e000
+
+//S2_pstorerbf_io
+//if (!Pv4) memb(Rs32+#u6:0)=Rt32
+if (!p0) memb(r0+#0x0)=r0
+//CHECK: 4400c000
+
+//S2_pstorerbf_pi
+//if (!Pv4) memb(Rx32++#s4:0)=Rt32
+if (!p0) memb(r6++#0x0)=r0
+//CHECK: ab06e004
+
+//S4_pstorerbt_rr
+//if (Pv4) memb(Rs32+Ru32<<#u2)=Rt32
+if (p0) memb(r0+r0<<#0x0)=r0
+//CHECK: 3400c000
+
+//S4_pstorerbf_rr
+//if (!Pv4) memb(Rs32+Ru32<<#u2)=Rt32
+if (!p0) memb(r0+r0<<#0x0)=r0
+//CHECK: 3500c000
+
+//S4_pstorerbtnew_io
+//if (Pv4.new) memb(Rs32+#u6:0)=Rt32
+{
+    p0=p1
+    if (p0.new) memb(r0+#0x0)=r0
+}
+//CHECK: 4200c000
+
+//S4_pstorerbfnew_io
+//if (!Pv4.new) memb(Rs32+#u6:0)=Rt32
+{
+    p0=p1
+    if (!p0.new) memb(r0+#0x0)=r0
+}
+//CHECK: 4600c000
+
+//S4_pstorerbtnew_rr
+//if (Pv4.new) memb(Rs32+Ru32<<#u2)=Rt32
+{
+    p0=p1
+    if (p0.new) memb(r0+r0<<#0x0)=r0
+}
+//CHECK: 3600c000
+
+//S4_pstorerbfnew_rr
+//if (!Pv4.new) memb(Rs32+Ru32<<#u2)=Rt32
+{
+    p0=p1
+    if (!p0.new) memb(r0+r0<<#0x0)=r0
+}
+//CHECK: 3700c000
+
+//S2_pstorerbtnew_pi
+//if (Pv4.new) memb(Rx32++#s4:0)=Rt32
+{
+    p0=p1
+    if (p0.new) memb(r6++#0x0)=r0
+}
+//CHECK: ab06e080
+
+//S2_pstorerbfnew_pi
+//if (!Pv4.new) memb(Rx32++#s4:0)=Rt32
+{
+    p0=p1
+    if (!p0.new) memb(r6++#0x0)=r0
+}
+//CHECK: ab06e084
+
+//S4_pstorerbt_abs
+//if (Pv4) memb(#u6)=Rt32
+if (p0) memb(#0x0)=r0
+//CHECK: af00c080
+
+//S4_pstorerbf_abs
+//if (!Pv4) memb(#u6)=Rt32
+if (!p0) memb(#0x0)=r0
+//CHECK: af00c084
+
+//S4_pstorerbtnew_abs
+//if (Pv4.new) memb(#u6)=Rt32
+{
+    p0=p1
+    if (p0.new) memb(#0x0)=r0
+}
+//CHECK: af00e080
+
+//S4_pstorerbfnew_abs
+//if (!Pv4.new) memb(#u6)=Rt32
+{
+    p0=p1
+    if (!p0.new) memb(#0x0)=r0
+}
+//CHECK: af00e084
+
+//S4_storerh_rr
+//memh(Rs32+Ru32<<#u2)=Rt32
+memh(r0+r0<<#0x0)=r0
+//CHECK: 3b40c000
+
+//S2_pstorerht_io
+//if (Pv4) memh(Rs32+#u6:1)=Rt32
+if (p0) memh(r0+#0x0)=r0
+//CHECK: 4040c000
+
+//S2_pstorerht_pi
+//if (Pv4) memh(Rx32++#s4:1)=Rt32
+if (p0) memh(r6++#0x0)=r0
+//CHECK: ab46e000
+
+//S2_pstorerhf_io
+//if (!Pv4) memh(Rs32+#u6:1)=Rt32
+if (!p0) memh(r0+#0x0)=r0
+//CHECK: 4440c000
+
+//S2_pstorerhf_pi
+//if (!Pv4) memh(Rx32++#s4:1)=Rt32
+if (!p0) memh(r6++#0x0)=r0
+//CHECK: ab46e004
+
+//S4_pstorerht_rr
+//if (Pv4) memh(Rs32+Ru32<<#u2)=Rt32
+if (p0) memh(r0+r0<<#0x0)=r0
+//CHECK: 3440c000
+
+//S4_pstorerhf_rr
+//if (!Pv4) memh(Rs32+Ru32<<#u2)=Rt32
+if (!p0) memh(r0+r0<<#0x0)=r0
+//CHECK: 3540c000
+
+//S4_pstorerhtnew_io
+//if (Pv4.new) memh(Rs32+#u6:1)=Rt32
+{
+    p0=p1
+    if (p0.new) memh(r0+#0x0)=r0
+}
+//CHECK: 4240c000
+
+//S4_pstorerhfnew_io
+//if (!Pv4.new) memh(Rs32+#u6:1)=Rt32
+{
+    p0=p1
+    if (!p0.new) memh(r0+#0x0)=r0
+}
+//CHECK: 4640c000
+
+//S4_pstorerhtnew_rr
+//if (Pv4.new) memh(Rs32+Ru32<<#u2)=Rt32
+{
+    p0=p1
+    if (p0.new) memh(r0+r0<<#0x0)=r0
+}
+//CHECK: 3640c000
+
+//S4_pstorerhfnew_rr
+//if (!Pv4.new) memh(Rs32+Ru32<<#u2)=Rt32
+{
+    p0=p1
+    if (!p0.new) memh(r0+r0<<#0x0)=r0
+}
+//CHECK: 3740c000
+
+//S2_pstorerhtnew_pi
+//if (Pv4.new) memh(Rx32++#s4:1)=Rt32
+{
+    p0=p1
+    if (p0.new) memh(r6++#0x0)=r0
+}
+//CHECK: ab46e080
+
+//S2_pstorerhfnew_pi
+//if (!Pv4.new) memh(Rx32++#s4:1)=Rt32
+{
+    p0=p1
+    if (!p0.new) memh(r6++#0x0)=r0
+}
+//CHECK: ab46e084
+
+//S4_pstorerht_abs
+//if (Pv4) memh(#u6)=Rt32
+if (p0) memh(#0x0)=r0
+//CHECK: af40c080
+
+//S4_pstorerhf_abs
+//if (!Pv4) memh(#u6)=Rt32
+if (!p0) memh(#0x0)=r0
+//CHECK: af40c084
+
+//S4_pstorerhtnew_abs
+//if (Pv4.new) memh(#u6)=Rt32
+{
+    p0=p1
+    if (p0.new) memh(#0x0)=r0
+}
+//CHECK: af40e080
+
+//S4_pstorerhfnew_abs
+//if (!Pv4.new) memh(#u6)=Rt32
+{
+    p0=p1
+    if (!p0.new) memh(#0x0)=r0
+}
+//CHECK: af40e084
+
+//S4_storerf_rr
+//memh(Rs32+Ru32<<#u2)=Rt32.h
+memh(r0+r0<<#0x0)=r0.h
+//CHECK: 3b60c000
+
+//S2_pstorerft_io
+//if (Pv4) memh(Rs32+#u6:1)=Rt32.h
+if (p0) memh(r0+#0x0)=r0.h
+//CHECK: 4060c000
+
+//S2_pstorerft_pi
+//if (Pv4) memh(Rx32++#s4:1)=Rt32.h
+if (p0) memh(r6++#0x0)=r0.h
+//CHECK: ab66e000
+
+//S2_pstorerff_io
+//if (!Pv4) memh(Rs32+#u6:1)=Rt32.h
+if (!p0) memh(r0+#0x0)=r0.h
+//CHECK: 4460c000
+
+//S2_pstorerff_pi
+//if (!Pv4) memh(Rx32++#s4:1)=Rt32.h
+if (!p0) memh(r6++#0x0)=r0.h
+//CHECK: ab66e004
+
+//S4_pstorerft_rr
+//if (Pv4) memh(Rs32+Ru32<<#u2)=Rt32.h
+if (p0) memh(r0+r0<<#0x0)=r0.h
+//CHECK: 3460c000
+
+//S4_pstorerff_rr
+//if (!Pv4) memh(Rs32+Ru32<<#u2)=Rt32.h
+if (!p0) memh(r0+r0<<#0x0)=r0.h
+//CHECK: 3560c000
+
+//S4_pstorerftnew_io
+//if (Pv4.new) memh(Rs32+#u6:1)=Rt32.h
+{
+    p0=p1
+    if (p0.new) memh(r0+#0x0)=r0.h
+}
+//CHECK: 4260c000
+
+//S4_pstorerffnew_io
+//if (!Pv4.new) memh(Rs32+#u6:1)=Rt32.h
+{
+    p0=p1
+    if (!p0.new) memh(r0+#0x0)=r0.h
+}
+//CHECK: 4660c000
+
+//S4_pstorerftnew_rr
+//if (Pv4.new) memh(Rs32+Ru32<<#u2)=Rt32.h
+{
+    p0=p1
+    if (p0.new) memh(r0+r0<<#0x0)=r0.h
+}
+//CHECK: 3660c000
+
+//S4_pstorerffnew_rr
+//if (!Pv4.new) memh(Rs32+Ru32<<#u2)=Rt32.h
+{
+    p0=p1
+    if (!p0.new) memh(r0+r0<<#0x0)=r0.h
+}
+//CHECK: 3760c000
+
+//S2_pstorerftnew_pi
+//if (Pv4.new) memh(Rx32++#s4:1)=Rt32.h
+{
+    p0=p1
+    if (p0.new) memh(r6++#0x0)=r0.h
+}
+//CHECK: ab66e080
+
+//S2_pstorerffnew_pi
+//if (!Pv4.new) memh(Rx32++#s4:1)=Rt32.h
+{
+    p0=p1
+    if (!p0.new) memh(r6++#0x0)=r0.h
+}
+//CHECK: ab66e084
+
+//S4_pstorerft_abs
+//if (Pv4) memh(#u6)=Rt32.h
+if (p0) memh(#0x0)=r0.h
+//CHECK: af60c080
+
+//S4_pstorerff_abs
+//if (!Pv4) memh(#u6)=Rt32.h
+if (!p0) memh(#0x0)=r0.h
+//CHECK: af60c084
+
+//S4_pstorerftnew_abs
+//if (Pv4.new) memh(#u6)=Rt32.h
+{
+    p0=p1
+    if (p0.new) memh(#0x0)=r0.h
+}
+//CHECK: af60e080
+
+//S4_pstorerffnew_abs
+//if (!Pv4.new) memh(#u6)=Rt32.h
+{
+    p0=p1
+    if (!p0.new) memh(#0x0)=r0.h
+}
+//CHECK: af60e084
+
+//S4_storeri_rr
+//memw(Rs32+Ru32<<#u2)=Rt32
+memw(r0+r0<<#0x0)=r0
+//CHECK: 3b80c000
+
+//S2_pstorerit_io
+//if (Pv4) memw(Rs32+#u6:2)=Rt32
+if (p0) memw(r0+#0x0)=r0
+//CHECK: 4080c000
+
+//S2_pstorerit_pi
+//if (Pv4) memw(Rx32++#s4:2)=Rt32
+if (p0) memw(r6++#0x0)=r0
+//CHECK: ab86e000
+
+//S2_pstorerif_io
+//if (!Pv4) memw(Rs32+#u6:2)=Rt32
+if (!p0) memw(r0+#0x0)=r0
+//CHECK: 4480c000
+
+//S2_pstorerif_pi
+//if (!Pv4) memw(Rx32++#s4:2)=Rt32
+if (!p0) memw(r6++#0x0)=r0
+//CHECK: ab86e004
+
+//S4_pstorerit_rr
+//if (Pv4) memw(Rs32+Ru32<<#u2)=Rt32
+if (p0) memw(r0+r0<<#0x0)=r0
+//CHECK: 3480c000
+
+//S4_pstorerif_rr
+//if (!Pv4) memw(Rs32+Ru32<<#u2)=Rt32
+if (!p0) memw(r0+r0<<#0x0)=r0
+//CHECK: 3580c000
+
+//S4_pstoreritnew_io
+//if (Pv4.new) memw(Rs32+#u6:2)=Rt32
+{
+    p0=p1
+    if (p0.new) memw(r0+#0x0)=r0
+}
+//CHECK: 4280c000
+
+//S4_pstorerifnew_io
+//if (!Pv4.new) memw(Rs32+#u6:2)=Rt32
+{
+    p0=p1
+    if (!p0.new) memw(r0+#0x0)=r0
+}
+//CHECK: 4680c000
+
+//S4_pstoreritnew_rr
+//if (Pv4.new) memw(Rs32+Ru32<<#u2)=Rt32
+{
+    p0=p1
+    if (p0.new) memw(r0+r0<<#0x0)=r0
+}
+//CHECK: 3680c000
+
+//S4_pstorerifnew_rr
+//if (!Pv4.new) memw(Rs32+Ru32<<#u2)=Rt32
+{
+    p0=p1
+    if (!p0.new) memw(r0+r0<<#0x0)=r0
+}
+//CHECK: 3780c000
+
+//S2_pstoreritnew_pi
+//if (Pv4.new) memw(Rx32++#s4:2)=Rt32
+{
+    p0=p1
+    if (p0.new) memw(r6++#0x0)=r0
+}
+//CHECK: ab86e080
+
+//S2_pstorerifnew_pi
+//if (!Pv4.new) memw(Rx32++#s4:2)=Rt32
+{
+    p0=p1
+    if (!p0.new) memw(r6++#0x0)=r0
+}
+//CHECK: ab86e084
+
+//S4_pstorerit_abs
+//if (Pv4) memw(#u6)=Rt32
+if (p0) memw(#0x0)=r0
+//CHECK: af80c080
+
+//S4_pstorerif_abs
+//if (!Pv4) memw(#u6)=Rt32
+if (!p0) memw(#0x0)=r0
+//CHECK: af80c084
+
+//S4_pstoreritnew_abs
+//if (Pv4.new) memw(#u6)=Rt32
+{
+    p0=p1
+    if (p0.new) memw(#0x0)=r0
+}
+//CHECK: af80e080
+
+//S4_pstorerifnew_abs
+//if (!Pv4.new) memw(#u6)=Rt32
+{
+    p0=p1
+    if (!p0.new) memw(#0x0)=r0
+}
+//CHECK: af80e084
+
+//S4_storerd_rr
+//memd(Rs32+Ru32<<#u2)=Rtt32
+memd(r0+r0<<#0x0)=r1:0
+//CHECK: 3bc0c000
+
+//S2_pstorerdt_io
+//if (Pv4) memd(Rs32+#u6:3)=Rtt32
+if (p0) memd(r0+#0x0)=r1:0
+//CHECK: 40c0c000
+
+//S2_pstorerdt_pi
+//if (Pv4) memd(Rx32++#s4:3)=Rtt32
+if (p0) memd(r6++#0x0)=r1:0
+//CHECK: abc6e000
+
+//S2_pstorerdf_io
+//if (!Pv4) memd(Rs32+#u6:3)=Rtt32
+if (!p0) memd(r0+#0x0)=r1:0
+//CHECK: 44c0c000
+
+//S2_pstorerdf_pi
+//if (!Pv4) memd(Rx32++#s4:3)=Rtt32
+if (!p0) memd(r6++#0x0)=r1:0
+//CHECK: abc6e004
+
+//S4_pstorerdt_rr
+//if (Pv4) memd(Rs32+Ru32<<#u2)=Rtt32
+if (p0) memd(r0+r0<<#0x0)=r1:0
+//CHECK: 34c0c000
+
+//S4_pstorerdf_rr
+//if (!Pv4) memd(Rs32+Ru32<<#u2)=Rtt32
+if (!p0) memd(r0+r0<<#0x0)=r1:0
+//CHECK: 35c0c000
+
+//S4_pstorerdtnew_io
+//if (Pv4.new) memd(Rs32+#u6:3)=Rtt32
+{
+    p0=p1
+    if (p0.new) memd(r0+#0x0)=r1:0
+}
+//CHECK: 42c0c000
+
+//S4_pstorerdfnew_io
+//if (!Pv4.new) memd(Rs32+#u6:3)=Rtt32
+{
+    p0=p1
+    if (!p0.new) memd(r0+#0x0)=r1:0
+}
+//CHECK: 46c0c000
+
+//S4_pstorerdtnew_rr
+//if (Pv4.new) memd(Rs32+Ru32<<#u2)=Rtt32
+{
+    p0=p1
+    if (p0.new) memd(r0+r0<<#0x0)=r1:0
+}
+//CHECK: 36c0c000
+
+//S4_pstorerdfnew_rr
+//if (!Pv4.new) memd(Rs32+Ru32<<#u2)=Rtt32
+{
+    p0=p1
+    if (!p0.new) memd(r0+r0<<#0x0)=r1:0
+}
+//CHECK: 37c0c000
+
+//S2_pstorerdtnew_pi
+//if (Pv4.new) memd(Rx32++#s4:3)=Rtt32
+{
+    p0=p1
+    if (p0.new) memd(r6++#0x0)=r1:0
+}
+//CHECK: abc6e080
+
+//S2_pstorerdfnew_pi
+//if (!Pv4.new) memd(Rx32++#s4:3)=Rtt32
+{
+    p0=p1
+    if (!p0.new) memd(r6++#0x0)=r1:0
+}
+//CHECK: abc6e084
+
+//S4_pstorerdt_abs
+//if (Pv4) memd(#u6)=Rtt32
+if (p0) memd(#0x0)=r1:0
+//CHECK: afc0c080
+
+//S4_pstorerdf_abs
+//if (!Pv4) memd(#u6)=Rtt32
+if (!p0) memd(#0x0)=r1:0
+//CHECK: afc0c084
+
+//S4_pstorerdtnew_abs
+//if (Pv4.new) memd(#u6)=Rtt32
+{
+    p0=p1
+    if (p0.new) memd(#0x0)=r1:0
+}
+//CHECK: afc0e080
+
+//S4_pstorerdfnew_abs
+//if (!Pv4.new) memd(#u6)=Rtt32
+{
+    p0=p1
+    if (!p0.new) memd(#0x0)=r1:0
+}
+//CHECK: afc0e084
+
+//S4_storerinew_rr
+//memw(Rs32+Ru32<<#u2)=Nt8.new
+{
+    r0=r1
+    memw(r0+r0<<#0x0)=r0.new
+}
+//CHECK: 3ba0c012
+
+//S2_pstorerinewt_io
+//if (Pv4) memw(Rs32+#u6:2)=Nt8.new
+{
+    r0=r1
+    if (p0) memw(r0+#0x0)=r0.new
+}
+//CHECK: 40a0d200
+
+//S2_pstorerinewt_pi
+//if (Pv4) memw(Rx32++#s4:2)=Nt8.new
+{
+    r0=r1
+    if (p0) memw(r6++#0x0)=r0.new
+}
+//CHECK: aba6f200
+
+//S2_pstorerinewf_io
+//if (!Pv4) memw(Rs32+#u6:2)=Nt8.new
+{
+    r0=r1
+    if (!p0) memw(r0+#0x0)=r0.new
+}
+//CHECK: 44a0d200
+
+//S2_pstorerinewf_pi
+//if (!Pv4) memw(Rx32++#s4:2)=Nt8.new
+{
+    r0=r1
+    if (!p0) memw(r6++#0x0)=r0.new
+}
+//CHECK: aba6f204
+
+//S4_pstorerinewt_rr
+//if (Pv4) memw(Rs32+Ru32<<#u2)=Nt8.new
+{
+    r0=r1
+    if (p0) memw(r0+r0<<#0x0)=r0.new
+}
+//CHECK: 34a0c012
+
+//S4_pstorerinewf_rr
+//if (!Pv4) memw(Rs32+Ru32<<#u2)=Nt8.new
+{
+    r0=r1
+    if (!p0) memw(r0+r0<<#0x0)=r0.new
+}
+//CHECK: 35a0c012
+
+//S4_pstorerinewt_abs
+//if (Pv4) memw(#u6)=Nt8.new
+{
+    r0=r1
+    if (p0) memw(#0x0)=r0.new
+}
+//CHECK: afa0d280
+
+//S4_pstorerinewf_abs
+//if (!Pv4) memw(#u6)=Nt8.new
+{
+    r0=r1
+    if (!p0) memw(#0x0)=r0.new
+}
+//CHECK: afa0d284
+
+//S4_storerbnew_rr
+//memb(Rs32+Ru32<<#u2)=Nt8.new
+{
+    r0=r1
+    memb(r0+r0<<#0x0)=r0.new
+}
+//CHECK: 3ba0c002
+
+//S2_pstorerbnewt_io
+//if (Pv4) memb(Rs32+#u6:0)=Nt8.new
+{
+    r0=r1
+    if (p0) memb(r0+#0x0)=r0.new
+}
+//CHECK: 40a0c200
+
+//S2_pstorerbnewt_pi
+//if (Pv4) memb(Rx32++#s4:0)=Nt8.new
+{
+    r0=r1
+    if (p0) memb(r6++#0x0)=r0.new
+}
+//CHECK: aba6e200
+
+//S2_pstorerbnewf_io
+//if (!Pv4) memb(Rs32+#u6:0)=Nt8.new
+{
+    r0=r1
+    if (!p0) memb(r0+#0x0)=r0.new
+}
+//CHECK: 44a0c200
+
+//S2_pstorerbnewf_pi
+//if (!Pv4) memb(Rx32++#s4:0)=Nt8.new
+{
+    r0=r1
+    if (!p0) memb(r6++#0x0)=r0.new
+}
+//CHECK: aba6e204
+
+//S4_pstorerbnewt_rr
+//if (Pv4) memb(Rs32+Ru32<<#u2)=Nt8.new
+{
+    r0=r1
+    if (p0) memb(r0+r0<<#0x0)=r0.new
+}
+//CHECK: 34a0c002
+
+//S4_pstorerbnewf_rr
+//if (!Pv4) memb(Rs32+Ru32<<#u2)=Nt8.new
+{
+    r0=r1
+    if (!p0) memb(r0+r0<<#0x0)=r0.new
+}
+//CHECK: 35a0c002
+
+//S4_pstorerbnewt_abs
+//if (Pv4) memb(#u6)=Nt8.new
+{
+    r0=r1
+    if (p0) memb(#0x0)=r0.new
+}
+//CHECK: afa0c280
+
+//S4_pstorerbnewf_abs
+//if (!Pv4) memb(#u6)=Nt8.new
+{
+    r0=r1
+    if (!p0) memb(#0x0)=r0.new
+}
+//CHECK: afa0c284
+
+//S4_storerhnew_rr
+//memh(Rs32+Ru32<<#u2)=Nt8.new
+{
+    r0=r1
+    memh(r0+r0<<#0x0)=r0.new
+}
+//CHECK: 3ba0c00a
+
+//S2_pstorerhnewt_io
+//if (Pv4) memh(Rs32+#u6:1)=Nt8.new
+{
+    r0=r1
+    if (p0) memh(r0+#0x0)=r0.new
+}
+//CHECK: 40a0ca00
+
+//S2_pstorerhnewt_pi
+//if (Pv4) memh(Rx32++#s4:1)=Nt8.new
+{
+    r0=r1
+    if (p0) memh(r6++#0x0)=r0.new
+}
+//CHECK: aba6ea00
+
+//S2_pstorerhnewf_io
+//if (!Pv4) memh(Rs32+#u6:1)=Nt8.new
+{
+    r0=r1
+    if (!p0) memh(r0+#0x0)=r0.new
+}
+//CHECK: 44a0ca00
+
+//S2_pstorerhnewf_pi
+//if (!Pv4) memh(Rx32++#s4:1)=Nt8.new
+{
+    r0=r1
+    if (!p0) memh(r6++#0x0)=r0.new
+}
+//CHECK: aba6ea04
+
+//S4_pstorerhnewt_rr
+//if (Pv4) memh(Rs32+Ru32<<#u2)=Nt8.new
+{
+    r0=r1
+    if (p0) memh(r0+r0<<#0x0)=r0.new
+}
+//CHECK: 34a0c00a
+
+//S4_pstorerhnewf_rr
+//if (!Pv4) memh(Rs32+Ru32<<#u2)=Nt8.new
+{
+    r0=r1
+    if (!p0) memh(r0+r0<<#0x0)=r0.new
+}
+//CHECK: 35a0c00a
+
+//S4_pstorerhnewt_abs
+//if (Pv4) memh(#u6)=Nt8.new
+{
+    r0=r1
+    if (p0) memh(#0x0)=r0.new
+}
+//CHECK: afa0ca80
+
+//S4_pstorerhnewf_abs
+//if (!Pv4) memh(#u6)=Nt8.new
+{
+    r0=r1
+    if (!p0) memh(#0x0)=r0.new
+}
+//CHECK: afa0ca84
+
+//L2_loadw_aq
+//Rd32=memw_aq(Rs32)
+r2=memw_aq(r0)
+//CHECK: 9200c802
+
+//L4_loadd_aq
+//Rdd32=memd_aq(Rs32)
+r3:2=memd_aq(r0)
+//CHECK: 9200d802
+
+//R6_release_at_vi
+//release(Rs32):at
+release(r0):at
+//CHECK: a0e0c00c
+
+//R6_release_st_vi
+//release(Rs32):st
+release(r0):st
+//CHECK: a0e0c02c
+
+//S2_storew_rl_at_vi
+//memw_rl(Rs32):at=Rt32
+memw_rl(r0):at=r0
+//CHECK: a0a0c008
+
+//S4_stored_rl_at_vi
+//memd_rl(Rs32):at=Rtt32
+memd_rl(r0):at=r1:0
+//CHECK: a0e0c008
+
+//S2_storew_rl_st_vi
+//memw_rl(Rs32):st=Rt32
+memw_rl(r0):st=r0
+//CHECK: a0a0c028
+
+//S4_stored_rl_st_vi
+//memd_rl(Rs32):st=Rtt32
+memd_rl(r0):st=r1:0
+//CHECK: a0e0c028
+
+//L4_add_memopw_io
+//memw(Rs32+#u6:2)+=Rt32
+memw(r0+#0x0)+=r0
+//CHECK: 3e40c000
+
+//L4_add_memopb_io
+//memb(Rs32+#u6:0)+=Rt32
+memb(r0+#0x0)+=r0
+//CHECK: 3e00c000
+
+//L4_add_memoph_io
+//memh(Rs32+#u6:1)+=Rt32
+memh(r0+#0x0)+=r0
+//CHECK: 3e20c000
+
+//L4_sub_memopw_io
+//memw(Rs32+#u6:2)-=Rt32
+memw(r0+#0x0)-=r0
+//CHECK: 3e40c020
+
+//L4_sub_memopb_io
+//memb(Rs32+#u6:0)-=Rt32
+memb(r0+#0x0)-=r0
+//CHECK: 3e00c020
+
+//L4_sub_memoph_io
+//memh(Rs32+#u6:1)-=Rt32
+memh(r0+#0x0)-=r0
+//CHECK: 3e20c020
+
+//L4_and_memopw_io
+//memw(Rs32+#u6:2)&=Rt32
+memw(r0+#0x0)&=r0
+//CHECK: 3e40c040
+
+//L4_and_memopb_io
+//memb(Rs32+#u6:0)&=Rt32
+memb(r0+#0x0)&=r0
+//CHECK: 3e00c040
+
+//L4_and_memoph_io
+//memh(Rs32+#u6:1)&=Rt32
+memh(r0+#0x0)&=r0
+//CHECK: 3e20c040
+
+//L4_or_memopw_io
+//memw(Rs32+#u6:2)|=Rt32
+memw(r0+#0x0)|=r0
+//CHECK: 3e40c060
+
+//L4_or_memopb_io
+//memb(Rs32+#u6:0)|=Rt32
+memb(r0+#0x0)|=r0
+//CHECK: 3e00c060
+
+//L4_or_memoph_io
+//memh(Rs32+#u6:1)|=Rt32
+memh(r0+#0x0)|=r0
+//CHECK: 3e20c060
+
+//L4_iadd_memopw_io
+//memw(Rs32+#u6:2)+=#U5
+memw(r0+#0x0)+=#0x0
+//CHECK: 3f40c000
+
+//L4_iadd_memopb_io
+//memb(Rs32+#u6:0)+=#U5
+memb(r0+#0x0)+=#0x0
+//CHECK: 3f00c000
+
+//L4_iadd_memoph_io
+//memh(Rs32+#u6:1)+=#U5
+memh(r0+#0x0)+=#0x0
+//CHECK: 3f20c000
+
+//L4_isub_memopw_io
+//memw(Rs32+#u6:2)-=#U5
+memw(r0+#0x0)-=#0x0
+//CHECK: 3f40c020
+
+//L4_isub_memopb_io
+//memb(Rs32+#u6:0)-=#U5
+memb(r0+#0x0)-=#0x0
+//CHECK: 3f00c020
+
+//L4_isub_memoph_io
+//memh(Rs32+#u6:1)-=#U5
+memh(r0+#0x0)-=#0x0
+//CHECK: 3f20c020
+
+//L4_iand_memopw_io
+//memw(Rs32+#u6:2)=clrbit(#U5)
+memw(r0+#0x0)=clrbit(#0x0)
+//CHECK: 3f40c040
+
+//L4_iand_memopb_io
+//memb(Rs32+#u6:0)=clrbit(#U5)
+memb(r0+#0x0)=clrbit(#0x0)
+//CHECK: 3f00c040
+
+//L4_iand_memoph_io
+//memh(Rs32+#u6:1)=clrbit(#U5)
+memh(r0+#0x0)=clrbit(#0x0)
+//CHECK: 3f20c040
+
+//L4_ior_memopw_io
+//memw(Rs32+#u6:2)=setbit(#U5)
+memw(r0+#0x0)=setbit(#0x0)
+//CHECK: 3f40c060
+
+//L4_ior_memopb_io
+//memb(Rs32+#u6:0)=setbit(#U5)
+memb(r0+#0x0)=setbit(#0x0)
+//CHECK: 3f00c060
+
+//L4_ior_memoph_io
+//memh(Rs32+#u6:1)=setbit(#U5)
+memh(r0+#0x0)=setbit(#0x0)
+//CHECK: 3f20c060
+
+//S4_storeirbt_io
+//if (Pv4) memb(Rs32+#u6:0)=#S6
+if (p0) memb(r0+#0x0)=#0x0
+//CHECK: 3800c000
+
+//S4_storeirbf_io
+//if (!Pv4) memb(Rs32+#u6:0)=#S6
+if (!p0) memb(r0+#0x0)=#0x0
+//CHECK: 3880c000
+
+//S4_storeirbtnew_io
+//if (Pv4.new) memb(Rs32+#u6:0)=#S6
+{
+    p0=p1
+    if (p0.new) memb(r0+#0x0)=#0x0
+}
+//CHECK: 3900c000
+
+//S4_storeirbfnew_io
+//if (!Pv4.new) memb(Rs32+#u6:0)=#S6
+{
+    p0=p1
+    if (!p0.new) memb(r0+#0x0)=#0x0
+}
+//CHECK: 3980c000
+
+//S4_storeirht_io
+//if (Pv4) memh(Rs32+#u6:1)=#S6
+if (p0) memh(r0+#0x0)=#0x0
+//CHECK: 3820c000
+
+//S4_storeirhf_io
+//if (!Pv4) memh(Rs32+#u6:1)=#S6
+if (!p0) memh(r0+#0x0)=#0x0
+//CHECK: 38a0c000
+
+//S4_storeirhtnew_io
+//if (Pv4.new) memh(Rs32+#u6:1)=#S6
+{
+    p0=p1
+    if (p0.new) memh(r0+#0x0)=#0x0
+}
+//CHECK: 3920c000
+
+//S4_storeirhfnew_io
+//if (!Pv4.new) memh(Rs32+#u6:1)=#S6
+{
+    p0=p1
+    if (!p0.new) memh(r0+#0x0)=#0x0
+}
+//CHECK: 39a0c000
+
+//S4_storeirit_io
+//if (Pv4) memw(Rs32+#u6:2)=#S6
+if (p0) memw(r0+#0x0)=#0x0
+//CHECK: 3840c000
+
+//S4_storeirif_io
+//if (!Pv4) memw(Rs32+#u6:2)=#S6
+if (!p0) memw(r0+#0x0)=#0x0
+//CHECK: 38c0c000
+
+//S4_storeiritnew_io
+//if (Pv4.new) memw(Rs32+#u6:2)=#S6
+{
+    p0=p1
+    if (p0.new) memw(r0+#0x0)=#0x0
+}
+//CHECK: 3940c000
+
+//S4_storeirifnew_io
+//if (!Pv4.new) memw(Rs32+#u6:2)=#S6
+{
+    p0=p1
+    if (!p0.new) memw(r0+#0x0)=#0x0
+}
+//CHECK: 39c0c000
+
+//S4_storeirb_io
+//memb(Rs32+#u6:0)=#S8
+memb(r0+#0x0)=#0x0
+//CHECK: 3c00c000
+
+//S4_storeirh_io
+//memh(Rs32+#u6:1)=#S8
+memh(r0+#0x0)=#0x0
+//CHECK: 3c20c000
+
+//S4_storeiri_io
+//memw(Rs32+#u6:2)=#S8
+memw(r0+#0x0)=#0x0
+//CHECK: 3c40c000
+
+//L2_loadrubgp
+//Rd32=memub(gp+#u16:0)
+r2=memub(gp+#0x0)
+//CHECK: 4920c002
+
+//L2_loadrbgp
+//Rd32=memb(gp+#u16:0)
+r2=memb(gp+#0x0)
+//CHECK: 4900c002
+
+//L2_loadruhgp
+//Rd32=memuh(gp+#u16:1)
+r2=memuh(gp+#0x0)
+//CHECK: 4960c002
+
+//L2_loadrhgp
+//Rd32=memh(gp+#u16:1)
+r2=memh(gp+#0x0)
+//CHECK: 4940c002
+
+//L2_loadrigp
+//Rd32=memw(gp+#u16:2)
+r2=memw(gp+#0x0)
+//CHECK: 4980c002
+
+//L2_loadrdgp
+//Rdd32=memd(gp+#u16:3)
+r3:2=memd(gp+#0x0)
+//CHECK: 49c0c002
+
+//S2_storerbgp
+//memb(gp+#u16:0)=Rt32
+memb(gp+#0x0)=r0
+//CHECK: 4800c000
+
+//S2_storerhgp
+//memh(gp+#u16:1)=Rt32
+memh(gp+#0x0)=r0
+//CHECK: 4840c000
+
+//S2_storerfgp
+//memh(gp+#u16:1)=Rt32.h
+memh(gp+#0x0)=r0.h
+//CHECK: 4860c000
+
+//S2_storerigp
+//memw(gp+#u16:2)=Rt32
+memw(gp+#0x0)=r0
+//CHECK: 4880c000
+
+//S2_storerdgp
+//memd(gp+#u16:3)=Rtt32
+memd(gp+#0x0)=r1:0
+//CHECK: 48c0c000
+
+//S2_storerinewgp
+//memw(gp+#u16:2)=Nt8.new
+{
+    r0=r1
+    memw(gp+#0x0)=r0.new
+}
+//CHECK: 48a0d200
+
+//S2_storerbnewgp
+//memb(gp+#u16:0)=Nt8.new
+{
+    r0=r1
+    memb(gp+#0x0)=r0.new
+}
+//CHECK: 48a0c200
+
+//S2_storerhnewgp
+//memh(gp+#u16:1)=Nt8.new
+{
+    r0=r1
+    memh(gp+#0x0)=r0.new
+}
+//CHECK: 48a0ca00
+
+//M2_mpy_acc_hh_s0
+//Rx32+=mpy(Rs32.h,Rt32.h)
+r6+=mpy(r0.h,r0.h)
+//CHECK: ee00c066
+
+//M2_mpy_acc_hh_s1
+//Rx32+=mpy(Rs32.h,Rt32.h):<<1
+r6+=mpy(r0.h,r0.h):<<1
+//CHECK: ee80c066
+
+//M2_mpy_acc_hl_s0
+//Rx32+=mpy(Rs32.h,Rt32.l)
+r6+=mpy(r0.h,r0.l)
+//CHECK: ee00c046
+
+//M2_mpy_acc_hl_s1
+//Rx32+=mpy(Rs32.h,Rt32.l):<<1
+r6+=mpy(r0.h,r0.l):<<1
+//CHECK: ee80c046
+
+//M2_mpy_acc_lh_s0
+//Rx32+=mpy(Rs32.l,Rt32.h)
+r6+=mpy(r0.l,r0.h)
+//CHECK: ee00c026
+
+//M2_mpy_acc_lh_s1
+//Rx32+=mpy(Rs32.l,Rt32.h):<<1
+r6+=mpy(r0.l,r0.h):<<1
+//CHECK: ee80c026
+
+//M2_mpy_acc_ll_s0
+//Rx32+=mpy(Rs32.l,Rt32.l)
+r6+=mpy(r0.l,r0.l)
+//CHECK: ee00c006
+
+//M2_mpy_acc_ll_s1
+//Rx32+=mpy(Rs32.l,Rt32.l):<<1
+r6+=mpy(r0.l,r0.l):<<1
+//CHECK: ee80c006
+
+//M2_mpy_nac_hh_s0
+//Rx32-=mpy(Rs32.h,Rt32.h)
+r6-=mpy(r0.h,r0.h)
+//CHECK: ee20c066
+
+//M2_mpy_nac_hh_s1
+//Rx32-=mpy(Rs32.h,Rt32.h):<<1
+r6-=mpy(r0.h,r0.h):<<1
+//CHECK: eea0c066
+
+//M2_mpy_nac_hl_s0
+//Rx32-=mpy(Rs32.h,Rt32.l)
+r6-=mpy(r0.h,r0.l)
+//CHECK: ee20c046
+
+//M2_mpy_nac_hl_s1
+//Rx32-=mpy(Rs32.h,Rt32.l):<<1
+r6-=mpy(r0.h,r0.l):<<1
+//CHECK: eea0c046
+
+//M2_mpy_nac_lh_s0
+//Rx32-=mpy(Rs32.l,Rt32.h)
+r6-=mpy(r0.l,r0.h)
+//CHECK: ee20c026
+
+//M2_mpy_nac_lh_s1
+//Rx32-=mpy(Rs32.l,Rt32.h):<<1
+r6-=mpy(r0.l,r0.h):<<1
+//CHECK: eea0c026
+
+//M2_mpy_nac_ll_s0
+//Rx32-=mpy(Rs32.l,Rt32.l)
+r6-=mpy(r0.l,r0.l)
+//CHECK: ee20c006
+
+//M2_mpy_nac_ll_s1
+//Rx32-=mpy(Rs32.l,Rt32.l):<<1
+r6-=mpy(r0.l,r0.l):<<1
+//CHECK: eea0c006
+
+//M2_mpy_acc_sat_hh_s0
+//Rx32+=mpy(Rs32.h,Rt32.h):sat
+r6+=mpy(r0.h,r0.h):sat
+//CHECK: ee00c0e6
+
+//M2_mpy_acc_sat_hh_s1
+//Rx32+=mpy(Rs32.h,Rt32.h):<<1:sat
+r6+=mpy(r0.h,r0.h):<<1:sat
+//CHECK: ee80c0e6
+
+//M2_mpy_acc_sat_hl_s0
+//Rx32+=mpy(Rs32.h,Rt32.l):sat
+r6+=mpy(r0.h,r0.l):sat
+//CHECK: ee00c0c6
+
+//M2_mpy_acc_sat_hl_s1
+//Rx32+=mpy(Rs32.h,Rt32.l):<<1:sat
+r6+=mpy(r0.h,r0.l):<<1:sat
+//CHECK: ee80c0c6
+
+//M2_mpy_acc_sat_lh_s0
+//Rx32+=mpy(Rs32.l,Rt32.h):sat
+r6+=mpy(r0.l,r0.h):sat
+//CHECK: ee00c0a6
+
+//M2_mpy_acc_sat_lh_s1
+//Rx32+=mpy(Rs32.l,Rt32.h):<<1:sat
+r6+=mpy(r0.l,r0.h):<<1:sat
+//CHECK: ee80c0a6
+
+//M2_mpy_acc_sat_ll_s0
+//Rx32+=mpy(Rs32.l,Rt32.l):sat
+r6+=mpy(r0.l,r0.l):sat
+//CHECK: ee00c086
+
+//M2_mpy_acc_sat_ll_s1
+//Rx32+=mpy(Rs32.l,Rt32.l):<<1:sat
+r6+=mpy(r0.l,r0.l):<<1:sat
+//CHECK: ee80c086
+
+//M2_mpy_nac_sat_hh_s0
+//Rx32-=mpy(Rs32.h,Rt32.h):sat
+r6-=mpy(r0.h,r0.h):sat
+//CHECK: ee20c0e6
+
+//M2_mpy_nac_sat_hh_s1
+//Rx32-=mpy(Rs32.h,Rt32.h):<<1:sat
+r6-=mpy(r0.h,r0.h):<<1:sat
+//CHECK: eea0c0e6
+
+//M2_mpy_nac_sat_hl_s0
+//Rx32-=mpy(Rs32.h,Rt32.l):sat
+r6-=mpy(r0.h,r0.l):sat
+//CHECK: ee20c0c6
+
+//M2_mpy_nac_sat_hl_s1
+//Rx32-=mpy(Rs32.h,Rt32.l):<<1:sat
+r6-=mpy(r0.h,r0.l):<<1:sat
+//CHECK: eea0c0c6
+
+//M2_mpy_nac_sat_lh_s0
+//Rx32-=mpy(Rs32.l,Rt32.h):sat
+r6-=mpy(r0.l,r0.h):sat
+//CHECK: ee20c0a6
+
+//M2_mpy_nac_sat_lh_s1
+//Rx32-=mpy(Rs32.l,Rt32.h):<<1:sat
+r6-=mpy(r0.l,r0.h):<<1:sat
+//CHECK: eea0c0a6
+
+//M2_mpy_nac_sat_ll_s0
+//Rx32-=mpy(Rs32.l,Rt32.l):sat
+r6-=mpy(r0.l,r0.l):sat
+//CHECK: ee20c086
+
+//M2_mpy_nac_sat_ll_s1
+//Rx32-=mpy(Rs32.l,Rt32.l):<<1:sat
+r6-=mpy(r0.l,r0.l):<<1:sat
+//CHECK: eea0c086
+
+//M2_mpy_hh_s0
+//Rd32=mpy(Rs32.h,Rt32.h)
+r2=mpy(r0.h,r0.h)
+//CHECK: ec00c062
+
+//M2_mpy_hh_s1
+//Rd32=mpy(Rs32.h,Rt32.h):<<1
+r2=mpy(r0.h,r0.h):<<1
+//CHECK: ec80c062
+
+//M2_mpy_hl_s0
+//Rd32=mpy(Rs32.h,Rt32.l)
+r2=mpy(r0.h,r0.l)
+//CHECK: ec00c042
+
+//M2_mpy_hl_s1
+//Rd32=mpy(Rs32.h,Rt32.l):<<1
+r2=mpy(r0.h,r0.l):<<1
+//CHECK: ec80c042
+
+//M2_mpy_lh_s0
+//Rd32=mpy(Rs32.l,Rt32.h)
+r2=mpy(r0.l,r0.h)
+//CHECK: ec00c022
+
+//M2_mpy_lh_s1
+//Rd32=mpy(Rs32.l,Rt32.h):<<1
+r2=mpy(r0.l,r0.h):<<1
+//CHECK: ec80c022
+
+//M2_mpy_ll_s0
+//Rd32=mpy(Rs32.l,Rt32.l)
+r2=mpy(r0.l,r0.l)
+//CHECK: ec00c002
+
+//M2_mpy_ll_s1
+//Rd32=mpy(Rs32.l,Rt32.l):<<1
+r2=mpy(r0.l,r0.l):<<1
+//CHECK: ec80c002
+
+//M2_mpy_sat_hh_s0
+//Rd32=mpy(Rs32.h,Rt32.h):sat
+r2=mpy(r0.h,r0.h):sat
+//CHECK: ec00c0e2
+
+//M2_mpy_sat_hh_s1
+//Rd32=mpy(Rs32.h,Rt32.h):<<1:sat
+r2=mpy(r0.h,r0.h):<<1:sat
+//CHECK: ec80c0e2
+
+//M2_mpy_sat_hl_s0
+//Rd32=mpy(Rs32.h,Rt32.l):sat
+r2=mpy(r0.h,r0.l):sat
+//CHECK: ec00c0c2
+
+//M2_mpy_sat_hl_s1
+//Rd32=mpy(Rs32.h,Rt32.l):<<1:sat
+r2=mpy(r0.h,r0.l):<<1:sat
+//CHECK: ec80c0c2
+
+//M2_mpy_sat_lh_s0
+//Rd32=mpy(Rs32.l,Rt32.h):sat
+r2=mpy(r0.l,r0.h):sat
+//CHECK: ec00c0a2
+
+//M2_mpy_sat_lh_s1
+//Rd32=mpy(Rs32.l,Rt32.h):<<1:sat
+r2=mpy(r0.l,r0.h):<<1:sat
+//CHECK: ec80c0a2
+
+//M2_mpy_sat_ll_s0
+//Rd32=mpy(Rs32.l,Rt32.l):sat
+r2=mpy(r0.l,r0.l):sat
+//CHECK: ec00c082
+
+//M2_mpy_sat_ll_s1
+//Rd32=mpy(Rs32.l,Rt32.l):<<1:sat
+r2=mpy(r0.l,r0.l):<<1:sat
+//CHECK: ec80c082
+
+//M2_mpy_rnd_hh_s0
+//Rd32=mpy(Rs32.h,Rt32.h):rnd
+r2=mpy(r0.h,r0.h):rnd
+//CHECK: ec20c062
+
+//M2_mpy_rnd_hh_s1
+//Rd32=mpy(Rs32.h,Rt32.h):<<1:rnd
+r2=mpy(r0.h,r0.h):<<1:rnd
+//CHECK: eca0c062
+
+//M2_mpy_rnd_hl_s0
+//Rd32=mpy(Rs32.h,Rt32.l):rnd
+r2=mpy(r0.h,r0.l):rnd
+//CHECK: ec20c042
+
+//M2_mpy_rnd_hl_s1
+//Rd32=mpy(Rs32.h,Rt32.l):<<1:rnd
+r2=mpy(r0.h,r0.l):<<1:rnd
+//CHECK: eca0c042
+
+//M2_mpy_rnd_lh_s0
+//Rd32=mpy(Rs32.l,Rt32.h):rnd
+r2=mpy(r0.l,r0.h):rnd
+//CHECK: ec20c022
+
+//M2_mpy_rnd_lh_s1
+//Rd32=mpy(Rs32.l,Rt32.h):<<1:rnd
+r2=mpy(r0.l,r0.h):<<1:rnd
+//CHECK: eca0c022
+
+//M2_mpy_rnd_ll_s0
+//Rd32=mpy(Rs32.l,Rt32.l):rnd
+r2=mpy(r0.l,r0.l):rnd
+//CHECK: ec20c002
+
+//M2_mpy_rnd_ll_s1
+//Rd32=mpy(Rs32.l,Rt32.l):<<1:rnd
+r2=mpy(r0.l,r0.l):<<1:rnd
+//CHECK: eca0c002
+
+//M2_mpy_sat_rnd_hh_s0
+//Rd32=mpy(Rs32.h,Rt32.h):rnd:sat
+r2=mpy(r0.h,r0.h):rnd:sat
+//CHECK: ec20c0e2
+
+//M2_mpy_sat_rnd_hh_s1
+//Rd32=mpy(Rs32.h,Rt32.h):<<1:rnd:sat
+r2=mpy(r0.h,r0.h):<<1:rnd:sat
+//CHECK: eca0c0e2
+
+//M2_mpy_sat_rnd_hl_s0
+//Rd32=mpy(Rs32.h,Rt32.l):rnd:sat
+r2=mpy(r0.h,r0.l):rnd:sat
+//CHECK: ec20c0c2
+
+//M2_mpy_sat_rnd_hl_s1
+//Rd32=mpy(Rs32.h,Rt32.l):<<1:rnd:sat
+r2=mpy(r0.h,r0.l):<<1:rnd:sat
+//CHECK: eca0c0c2
+
+//M2_mpy_sat_rnd_lh_s0
+//Rd32=mpy(Rs32.l,Rt32.h):rnd:sat
+r2=mpy(r0.l,r0.h):rnd:sat
+//CHECK: ec20c0a2
+
+//M2_mpy_sat_rnd_lh_s1
+//Rd32=mpy(Rs32.l,Rt32.h):<<1:rnd:sat
+r2=mpy(r0.l,r0.h):<<1:rnd:sat
+//CHECK: eca0c0a2
+
+//M2_mpy_sat_rnd_ll_s0
+//Rd32=mpy(Rs32.l,Rt32.l):rnd:sat
+r2=mpy(r0.l,r0.l):rnd:sat
+//CHECK: ec20c082
+
+//M2_mpy_sat_rnd_ll_s1
+//Rd32=mpy(Rs32.l,Rt32.l):<<1:rnd:sat
+r2=mpy(r0.l,r0.l):<<1:rnd:sat
+//CHECK: eca0c082
+
+//M2_mpyd_acc_hh_s0
+//Rxx32+=mpy(Rs32.h,Rt32.h)
+r1:0+=mpy(r0.h,r0.h)
+//CHECK: e600c060
+
+//M2_mpyd_acc_hh_s1
+//Rxx32+=mpy(Rs32.h,Rt32.h):<<1
+r1:0+=mpy(r0.h,r0.h):<<1
+//CHECK: e680c060
+
+//M2_mpyd_acc_hl_s0
+//Rxx32+=mpy(Rs32.h,Rt32.l)
+r1:0+=mpy(r0.h,r0.l)
+//CHECK: e600c040
+
+//M2_mpyd_acc_hl_s1
+//Rxx32+=mpy(Rs32.h,Rt32.l):<<1
+r1:0+=mpy(r0.h,r0.l):<<1
+//CHECK: e680c040
+
+//M2_mpyd_acc_lh_s0
+//Rxx32+=mpy(Rs32.l,Rt32.h)
+r1:0+=mpy(r0.l,r0.h)
+//CHECK: e600c020
+
+//M2_mpyd_acc_lh_s1
+//Rxx32+=mpy(Rs32.l,Rt32.h):<<1
+r1:0+=mpy(r0.l,r0.h):<<1
+//CHECK: e680c020
+
+//M2_mpyd_acc_ll_s0
+//Rxx32+=mpy(Rs32.l,Rt32.l)
+r1:0+=mpy(r0.l,r0.l)
+//CHECK: e600c000
+
+//M2_mpyd_acc_ll_s1
+//Rxx32+=mpy(Rs32.l,Rt32.l):<<1
+r1:0+=mpy(r0.l,r0.l):<<1
+//CHECK: e680c000
+
+//M2_mpyd_nac_hh_s0
+//Rxx32-=mpy(Rs32.h,Rt32.h)
+r1:0-=mpy(r0.h,r0.h)
+//CHECK: e620c060
+
+//M2_mpyd_nac_hh_s1
+//Rxx32-=mpy(Rs32.h,Rt32.h):<<1
+r1:0-=mpy(r0.h,r0.h):<<1
+//CHECK: e6a0c060
+
+//M2_mpyd_nac_hl_s0
+//Rxx32-=mpy(Rs32.h,Rt32.l)
+r1:0-=mpy(r0.h,r0.l)
+//CHECK: e620c040
+
+//M2_mpyd_nac_hl_s1
+//Rxx32-=mpy(Rs32.h,Rt32.l):<<1
+r1:0-=mpy(r0.h,r0.l):<<1
+//CHECK: e6a0c040
+
+//M2_mpyd_nac_lh_s0
+//Rxx32-=mpy(Rs32.l,Rt32.h)
+r1:0-=mpy(r0.l,r0.h)
+//CHECK: e620c020
+
+//M2_mpyd_nac_lh_s1
+//Rxx32-=mpy(Rs32.l,Rt32.h):<<1
+r1:0-=mpy(r0.l,r0.h):<<1
+//CHECK: e6a0c020
+
+//M2_mpyd_nac_ll_s0
+//Rxx32-=mpy(Rs32.l,Rt32.l)
+r1:0-=mpy(r0.l,r0.l)
+//CHECK: e620c000
+
+//M2_mpyd_nac_ll_s1
+//Rxx32-=mpy(Rs32.l,Rt32.l):<<1
+r1:0-=mpy(r0.l,r0.l):<<1
+//CHECK: e6a0c000
+
+//M2_mpyd_hh_s0
+//Rdd32=mpy(Rs32.h,Rt32.h)
+r3:2=mpy(r0.h,r0.h)
+//CHECK: e400c062
+
+//M2_mpyd_hh_s1
+//Rdd32=mpy(Rs32.h,Rt32.h):<<1
+r3:2=mpy(r0.h,r0.h):<<1
+//CHECK: e480c062
+
+//M2_mpyd_hl_s0
+//Rdd32=mpy(Rs32.h,Rt32.l)
+r3:2=mpy(r0.h,r0.l)
+//CHECK: e400c042
+
+//M2_mpyd_hl_s1
+//Rdd32=mpy(Rs32.h,Rt32.l):<<1
+r3:2=mpy(r0.h,r0.l):<<1
+//CHECK: e480c042
+
+//M2_mpyd_lh_s0
+//Rdd32=mpy(Rs32.l,Rt32.h)
+r3:2=mpy(r0.l,r0.h)
+//CHECK: e400c022
+
+//M2_mpyd_lh_s1
+//Rdd32=mpy(Rs32.l,Rt32.h):<<1
+r3:2=mpy(r0.l,r0.h):<<1
+//CHECK: e480c022
+
+//M2_mpyd_ll_s0
+//Rdd32=mpy(Rs32.l,Rt32.l)
+r3:2=mpy(r0.l,r0.l)
+//CHECK: e400c002
+
+//M2_mpyd_ll_s1
+//Rdd32=mpy(Rs32.l,Rt32.l):<<1
+r3:2=mpy(r0.l,r0.l):<<1
+//CHECK: e480c002
+
+//M2_mpyd_rnd_hh_s0
+//Rdd32=mpy(Rs32.h,Rt32.h):rnd
+r3:2=mpy(r0.h,r0.h):rnd
+//CHECK: e420c062
+
+//M2_mpyd_rnd_hh_s1
+//Rdd32=mpy(Rs32.h,Rt32.h):<<1:rnd
+r3:2=mpy(r0.h,r0.h):<<1:rnd
+//CHECK: e4a0c062
+
+//M2_mpyd_rnd_hl_s0
+//Rdd32=mpy(Rs32.h,Rt32.l):rnd
+r3:2=mpy(r0.h,r0.l):rnd
+//CHECK: e420c042
+
+//M2_mpyd_rnd_hl_s1
+//Rdd32=mpy(Rs32.h,Rt32.l):<<1:rnd
+r3:2=mpy(r0.h,r0.l):<<1:rnd
+//CHECK: e4a0c042
+
+//M2_mpyd_rnd_lh_s0
+//Rdd32=mpy(Rs32.l,Rt32.h):rnd
+r3:2=mpy(r0.l,r0.h):rnd
+//CHECK: e420c022
+
+//M2_mpyd_rnd_lh_s1
+//Rdd32=mpy(Rs32.l,Rt32.h):<<1:rnd
+r3:2=mpy(r0.l,r0.h):<<1:rnd
+//CHECK: e4a0c022
+
+//M2_mpyd_rnd_ll_s0
+//Rdd32=mpy(Rs32.l,Rt32.l):rnd
+r3:2=mpy(r0.l,r0.l):rnd
+//CHECK: e420c002
+
+//M2_mpyd_rnd_ll_s1
+//Rdd32=mpy(Rs32.l,Rt32.l):<<1:rnd
+r3:2=mpy(r0.l,r0.l):<<1:rnd
+//CHECK: e4a0c002
+
+//M2_mpyu_acc_hh_s0
+//Rx32+=mpyu(Rs32.h,Rt32.h)
+r6+=mpyu(r0.h,r0.h)
+//CHECK: ee40c066
+
+//M2_mpyu_acc_hh_s1
+//Rx32+=mpyu(Rs32.h,Rt32.h):<<1
+r6+=mpyu(r0.h,r0.h):<<1
+//CHECK: eec0c066
+
+//M2_mpyu_acc_hl_s0
+//Rx32+=mpyu(Rs32.h,Rt32.l)
+r6+=mpyu(r0.h,r0.l)
+//CHECK: ee40c046
+
+//M2_mpyu_acc_hl_s1
+//Rx32+=mpyu(Rs32.h,Rt32.l):<<1
+r6+=mpyu(r0.h,r0.l):<<1
+//CHECK: eec0c046
+
+//M2_mpyu_acc_lh_s0
+//Rx32+=mpyu(Rs32.l,Rt32.h)
+r6+=mpyu(r0.l,r0.h)
+//CHECK: ee40c026
+
+//M2_mpyu_acc_lh_s1
+//Rx32+=mpyu(Rs32.l,Rt32.h):<<1
+r6+=mpyu(r0.l,r0.h):<<1
+//CHECK: eec0c026
+
+//M2_mpyu_acc_ll_s0
+//Rx32+=mpyu(Rs32.l,Rt32.l)
+r6+=mpyu(r0.l,r0.l)
+//CHECK: ee40c006
+
+//M2_mpyu_acc_ll_s1
+//Rx32+=mpyu(Rs32.l,Rt32.l):<<1
+r6+=mpyu(r0.l,r0.l):<<1
+//CHECK: eec0c006
+
+//M2_mpyu_nac_hh_s0
+//Rx32-=mpyu(Rs32.h,Rt32.h)
+r6-=mpyu(r0.h,r0.h)
+//CHECK: ee60c066
+
+//M2_mpyu_nac_hh_s1
+//Rx32-=mpyu(Rs32.h,Rt32.h):<<1
+r6-=mpyu(r0.h,r0.h):<<1
+//CHECK: eee0c066
+
+//M2_mpyu_nac_hl_s0
+//Rx32-=mpyu(Rs32.h,Rt32.l)
+r6-=mpyu(r0.h,r0.l)
+//CHECK: ee60c046
+
+//M2_mpyu_nac_hl_s1
+//Rx32-=mpyu(Rs32.h,Rt32.l):<<1
+r6-=mpyu(r0.h,r0.l):<<1
+//CHECK: eee0c046
+
+//M2_mpyu_nac_lh_s0
+//Rx32-=mpyu(Rs32.l,Rt32.h)
+r6-=mpyu(r0.l,r0.h)
+//CHECK: ee60c026
+
+//M2_mpyu_nac_lh_s1
+//Rx32-=mpyu(Rs32.l,Rt32.h):<<1
+r6-=mpyu(r0.l,r0.h):<<1
+//CHECK: eee0c026
+
+//M2_mpyu_nac_ll_s0
+//Rx32-=mpyu(Rs32.l,Rt32.l)
+r6-=mpyu(r0.l,r0.l)
+//CHECK: ee60c006
+
+//M2_mpyu_nac_ll_s1
+//Rx32-=mpyu(Rs32.l,Rt32.l):<<1
+r6-=mpyu(r0.l,r0.l):<<1
+//CHECK: eee0c006
+
+//M2_mpyu_hh_s0
+//Rd32=mpyu(Rs32.h,Rt32.h)
+r2=mpyu(r0.h,r0.h)
+//CHECK: ec40c062
+
+//M2_mpyu_hh_s1
+//Rd32=mpyu(Rs32.h,Rt32.h):<<1
+r2=mpyu(r0.h,r0.h):<<1
+//CHECK: ecc0c062
+
+//M2_mpyu_hl_s0
+//Rd32=mpyu(Rs32.h,Rt32.l)
+r2=mpyu(r0.h,r0.l)
+//CHECK: ec40c042
+
+//M2_mpyu_hl_s1
+//Rd32=mpyu(Rs32.h,Rt32.l):<<1
+r2=mpyu(r0.h,r0.l):<<1
+//CHECK: ecc0c042
+
+//M2_mpyu_lh_s0
+//Rd32=mpyu(Rs32.l,Rt32.h)
+r2=mpyu(r0.l,r0.h)
+//CHECK: ec40c022
+
+//M2_mpyu_lh_s1
+//Rd32=mpyu(Rs32.l,Rt32.h):<<1
+r2=mpyu(r0.l,r0.h):<<1
+//CHECK: ecc0c022
+
+//M2_mpyu_ll_s0
+//Rd32=mpyu(Rs32.l,Rt32.l)
+r2=mpyu(r0.l,r0.l)
+//CHECK: ec40c002
+
+//M2_mpyu_ll_s1
+//Rd32=mpyu(Rs32.l,Rt32.l):<<1
+r2=mpyu(r0.l,r0.l):<<1
+//CHECK: ecc0c002
+
+//M2_mpyud_acc_hh_s0
+//Rxx32+=mpyu(Rs32.h,Rt32.h)
+r1:0+=mpyu(r0.h,r0.h)
+//CHECK: e640c060
+
+//M2_mpyud_acc_hh_s1
+//Rxx32+=mpyu(Rs32.h,Rt32.h):<<1
+r1:0+=mpyu(r0.h,r0.h):<<1
+//CHECK: e6c0c060
+
+//M2_mpyud_acc_hl_s0
+//Rxx32+=mpyu(Rs32.h,Rt32.l)
+r1:0+=mpyu(r0.h,r0.l)
+//CHECK: e640c040
+
+//M2_mpyud_acc_hl_s1
+//Rxx32+=mpyu(Rs32.h,Rt32.l):<<1
+r1:0+=mpyu(r0.h,r0.l):<<1
+//CHECK: e6c0c040
+
+//M2_mpyud_acc_lh_s0
+//Rxx32+=mpyu(Rs32.l,Rt32.h)
+r1:0+=mpyu(r0.l,r0.h)
+//CHECK: e640c020
+
+//M2_mpyud_acc_lh_s1
+//Rxx32+=mpyu(Rs32.l,Rt32.h):<<1
+r1:0+=mpyu(r0.l,r0.h):<<1
+//CHECK: e6c0c020
+
+//M2_mpyud_acc_ll_s0
+//Rxx32+=mpyu(Rs32.l,Rt32.l)
+r1:0+=mpyu(r0.l,r0.l)
+//CHECK: e640c000
+
+//M2_mpyud_acc_ll_s1
+//Rxx32+=mpyu(Rs32.l,Rt32.l):<<1
+r1:0+=mpyu(r0.l,r0.l):<<1
+//CHECK: e6c0c000
+
+//M2_mpyud_nac_hh_s0
+//Rxx32-=mpyu(Rs32.h,Rt32.h)
+r1:0-=mpyu(r0.h,r0.h)
+//CHECK: e660c060
+
+//M2_mpyud_nac_hh_s1
+//Rxx32-=mpyu(Rs32.h,Rt32.h):<<1
+r1:0-=mpyu(r0.h,r0.h):<<1
+//CHECK: e6e0c060
+
+//M2_mpyud_nac_hl_s0
+//Rxx32-=mpyu(Rs32.h,Rt32.l)
+r1:0-=mpyu(r0.h,r0.l)
+//CHECK: e660c040
+
+//M2_mpyud_nac_hl_s1
+//Rxx32-=mpyu(Rs32.h,Rt32.l):<<1
+r1:0-=mpyu(r0.h,r0.l):<<1
+//CHECK: e6e0c040
+
+//M2_mpyud_nac_lh_s0
+//Rxx32-=mpyu(Rs32.l,Rt32.h)
+r1:0-=mpyu(r0.l,r0.h)
+//CHECK: e660c020
+
+//M2_mpyud_nac_lh_s1
+//Rxx32-=mpyu(Rs32.l,Rt32.h):<<1
+r1:0-=mpyu(r0.l,r0.h):<<1
+//CHECK: e6e0c020
+
+//M2_mpyud_nac_ll_s0
+//Rxx32-=mpyu(Rs32.l,Rt32.l)
+r1:0-=mpyu(r0.l,r0.l)
+//CHECK: e660c000
+
+//M2_mpyud_nac_ll_s1
+//Rxx32-=mpyu(Rs32.l,Rt32.l):<<1
+r1:0-=mpyu(r0.l,r0.l):<<1
+//CHECK: e6e0c000
+
+//M2_mpyud_hh_s0
+//Rdd32=mpyu(Rs32.h,Rt32.h)
+r3:2=mpyu(r0.h,r0.h)
+//CHECK: e440c062
+
+//M2_mpyud_hh_s1
+//Rdd32=mpyu(Rs32.h,Rt32.h):<<1
+r3:2=mpyu(r0.h,r0.h):<<1
+//CHECK: e4c0c062
+
+//M2_mpyud_hl_s0
+//Rdd32=mpyu(Rs32.h,Rt32.l)
+r3:2=mpyu(r0.h,r0.l)
+//CHECK: e440c042
+
+//M2_mpyud_hl_s1
+//Rdd32=mpyu(Rs32.h,Rt32.l):<<1
+r3:2=mpyu(r0.h,r0.l):<<1
+//CHECK: e4c0c042
+
+//M2_mpyud_lh_s0
+//Rdd32=mpyu(Rs32.l,Rt32.h)
+r3:2=mpyu(r0.l,r0.h)
+//CHECK: e440c022
+
+//M2_mpyud_lh_s1
+//Rdd32=mpyu(Rs32.l,Rt32.h):<<1
+r3:2=mpyu(r0.l,r0.h):<<1
+//CHECK: e4c0c022
+
+//M2_mpyud_ll_s0
+//Rdd32=mpyu(Rs32.l,Rt32.l)
+r3:2=mpyu(r0.l,r0.l)
+//CHECK: e440c002
+
+//M2_mpyud_ll_s1
+//Rdd32=mpyu(Rs32.l,Rt32.l):<<1
+r3:2=mpyu(r0.l,r0.l):<<1
+//CHECK: e4c0c002
+
+//M2_mpysip
+//Rd32=+mpyi(Rs32,#u8)
+r2=+mpyi(r0,#0x0)
+//CHECK: e000c002
+
+//M2_mpysin
+//Rd32=-mpyi(Rs32,#u8)
+r2=-mpyi(r0,#0x0)
+//CHECK: e080c002
+
+//M2_macsip
+//Rx32+=mpyi(Rs32,#u8)
+r6+=mpyi(r0,#0x0)
+//CHECK: e100c006
+
+//M2_macsin
+//Rx32-=mpyi(Rs32,#u8)
+r6-=mpyi(r0,#0x0)
+//CHECK: e180c006
+
+//M2_dpmpyss_s0
+//Rdd32=mpy(Rs32,Rt32)
+r3:2=mpy(r0,r0)
+//CHECK: e500c002
+
+//M2_dpmpyss_acc_s0
+//Rxx32+=mpy(Rs32,Rt32)
+r1:0+=mpy(r0,r0)
+//CHECK: e700c000
+
+//M2_dpmpyss_nac_s0
+//Rxx32-=mpy(Rs32,Rt32)
+r1:0-=mpy(r0,r0)
+//CHECK: e720c000
+
+//M2_dpmpyuu_s0
+//Rdd32=mpyu(Rs32,Rt32)
+r3:2=mpyu(r0,r0)
+//CHECK: e540c002
+
+//M2_dpmpyuu_acc_s0
+//Rxx32+=mpyu(Rs32,Rt32)
+r1:0+=mpyu(r0,r0)
+//CHECK: e740c000
+
+//M2_dpmpyuu_nac_s0
+//Rxx32-=mpyu(Rs32,Rt32)
+r1:0-=mpyu(r0,r0)
+//CHECK: e760c000
+
+//M2_mpy_up
+//Rd32=mpy(Rs32,Rt32)
+r2=mpy(r0,r0)
+//CHECK: ed00c022
+
+//M2_mpy_up_s1
+//Rd32=mpy(Rs32,Rt32):<<1
+r2=mpy(r0,r0):<<1
+//CHECK: eda0c042
+
+//M2_mpy_up_s1_sat
+//Rd32=mpy(Rs32,Rt32):<<1:sat
+r2=mpy(r0,r0):<<1:sat
+//CHECK: ede0c002
+
+//M2_mpyu_up
+//Rd32=mpyu(Rs32,Rt32)
+r2=mpyu(r0,r0)
+//CHECK: ed40c022
+
+//M2_mpysu_up
+//Rd32=mpysu(Rs32,Rt32)
+r2=mpysu(r0,r0)
+//CHECK: ed60c022
+
+//M2_dpmpyss_rnd_s0
+//Rd32=mpy(Rs32,Rt32):rnd
+r2=mpy(r0,r0):rnd
+//CHECK: ed20c022
+
+//M4_mac_up_s1_sat
+//Rx32+=mpy(Rs32,Rt32):<<1:sat
+r6+=mpy(r0,r0):<<1:sat
+//CHECK: ef60c006
+
+//M4_nac_up_s1_sat
+//Rx32-=mpy(Rs32,Rt32):<<1:sat
+r6-=mpy(r0,r0):<<1:sat
+//CHECK: ef60c026
+
+//M2_mpyi
+//Rd32=mpyi(Rs32,Rt32)
+r2=mpyi(r0,r0)
+//CHECK: ed00c002
+
+//M2_maci
+//Rx32+=mpyi(Rs32,Rt32)
+r6+=mpyi(r0,r0)
+//CHECK: ef00c006
+
+//M2_mnaci
+//Rx32-=mpyi(Rs32,Rt32)
+r6-=mpyi(r0,r0)
+//CHECK: ef80c006
+
+//M2_acci
+//Rx32+=add(Rs32,Rt32)
+r6+=add(r0,r0)
+//CHECK: ef00c026
+
+//M2_accii
+//Rx32+=add(Rs32,#s8)
+r6+=add(r0,#0x0)
+//CHECK: e200c006
+
+//M2_nacci
+//Rx32-=add(Rs32,Rt32)
+r6-=add(r0,r0)
+//CHECK: ef80c026
+
+//M2_naccii
+//Rx32-=add(Rs32,#s8)
+r6-=add(r0,#0x0)
+//CHECK: e280c006
+
+//M2_subacc
+//Rx32+=sub(Rt32,Rs32)
+r6+=sub(r0,r0)
+//CHECK: ef00c066
+
+//M4_mpyrr_addr
+//Ry32=add(Ru32,mpyi(Ry32,Rs32))
+r4=add(r0,mpyi(r4,r0))
+//CHECK: e300c400
+
+//M4_mpyri_addr_u2
+//Rd32=add(Ru32,mpyi(#u6:2,Rs32))
+r2=add(r0,mpyi(#0x0,r0))
+//CHECK: df00c200
+
+//M4_mpyri_addr
+//Rd32=add(Ru32,mpyi(Rs32,#u6))
+r2=add(r0,mpyi(r0,#0x0))
+//CHECK: df80c200
+
+//M4_mpyri_addi
+//Rd32=add(#u6,mpyi(Rs32,#U6))
+r2=add(#0x0,mpyi(r0,#0x0))
+//CHECK: d800c200
+
+//M4_mpyrr_addi
+//Rd32=add(#u6,mpyi(Rs32,Rt32))
+r2=add(#0x0,mpyi(r0,r0))
+//CHECK: d700c002
+
+//M2_vmpy2s_s0
+//Rdd32=vmpyh(Rs32,Rt32):sat
+r3:2=vmpyh(r0,r0):sat
+//CHECK: e500c0a2
+
+//M2_vmpy2s_s1
+//Rdd32=vmpyh(Rs32,Rt32):<<1:sat
+r3:2=vmpyh(r0,r0):<<1:sat
+//CHECK: e580c0a2
+
+//M2_vmac2s_s0
+//Rxx32+=vmpyh(Rs32,Rt32):sat
+r1:0+=vmpyh(r0,r0):sat
+//CHECK: e700c0a0
+
+//M2_vmac2s_s1
+//Rxx32+=vmpyh(Rs32,Rt32):<<1:sat
+r1:0+=vmpyh(r0,r0):<<1:sat
+//CHECK: e780c0a0
+
+//M2_vmpy2su_s0
+//Rdd32=vmpyhsu(Rs32,Rt32):sat
+r3:2=vmpyhsu(r0,r0):sat
+//CHECK: e500c0e2
+
+//M2_vmpy2su_s1
+//Rdd32=vmpyhsu(Rs32,Rt32):<<1:sat
+r3:2=vmpyhsu(r0,r0):<<1:sat
+//CHECK: e580c0e2
+
+//M2_vmac2su_s0
+//Rxx32+=vmpyhsu(Rs32,Rt32):sat
+r1:0+=vmpyhsu(r0,r0):sat
+//CHECK: e760c0a0
+
+//M2_vmac2su_s1
+//Rxx32+=vmpyhsu(Rs32,Rt32):<<1:sat
+r1:0+=vmpyhsu(r0,r0):<<1:sat
+//CHECK: e7e0c0a0
+
+//M2_vmpy2s_s0pack
+//Rd32=vmpyh(Rs32,Rt32):rnd:sat
+r2=vmpyh(r0,r0):rnd:sat
+//CHECK: ed20c0e2
+
+//M2_vmpy2s_s1pack
+//Rd32=vmpyh(Rs32,Rt32):<<1:rnd:sat
+r2=vmpyh(r0,r0):<<1:rnd:sat
+//CHECK: eda0c0e2
+
+//M2_vmac2
+//Rxx32+=vmpyh(Rs32,Rt32)
+r1:0+=vmpyh(r0,r0)
+//CHECK: e720c020
+
+//M2_vmpy2es_s0
+//Rdd32=vmpyeh(Rss32,Rtt32):sat
+r3:2=vmpyeh(r1:0,r1:0):sat
+//CHECK: e800c0c2
+
+//M2_vmpy2es_s1
+//Rdd32=vmpyeh(Rss32,Rtt32):<<1:sat
+r3:2=vmpyeh(r1:0,r1:0):<<1:sat
+//CHECK: e880c0c2
+
+//M2_vmac2es_s0
+//Rxx32+=vmpyeh(Rss32,Rtt32):sat
+r1:0+=vmpyeh(r1:0,r1:0):sat
+//CHECK: ea00c0c0
+
+//M2_vmac2es_s1
+//Rxx32+=vmpyeh(Rss32,Rtt32):<<1:sat
+r1:0+=vmpyeh(r1:0,r1:0):<<1:sat
+//CHECK: ea80c0c0
+
+//M2_vmac2es
+//Rxx32+=vmpyeh(Rss32,Rtt32)
+r1:0+=vmpyeh(r1:0,r1:0)
+//CHECK: ea20c040
+
+//M2_vrmac_s0
+//Rxx32+=vrmpyh(Rss32,Rtt32)
+r1:0+=vrmpyh(r1:0,r1:0)
+//CHECK: ea00c040
+
+//M2_vrmpy_s0
+//Rdd32=vrmpyh(Rss32,Rtt32)
+r3:2=vrmpyh(r1:0,r1:0)
+//CHECK: e800c042
+
+//M2_vdmpyrs_s0
+//Rd32=vdmpy(Rss32,Rtt32):rnd:sat
+r2=vdmpy(r1:0,r1:0):rnd:sat
+//CHECK: e900c002
+
+//M2_vdmpyrs_s1
+//Rd32=vdmpy(Rss32,Rtt32):<<1:rnd:sat
+r2=vdmpy(r1:0,r1:0):<<1:rnd:sat
+//CHECK: e980c002
+
+//M5_vrmpybuu
+//Rdd32=vrmpybu(Rss32,Rtt32)
+r3:2=vrmpybu(r1:0,r1:0)
+//CHECK: e880c022
+
+//M5_vrmacbuu
+//Rxx32+=vrmpybu(Rss32,Rtt32)
+r1:0+=vrmpybu(r1:0,r1:0)
+//CHECK: ea80c020
+
+//M5_vrmpybsu
+//Rdd32=vrmpybsu(Rss32,Rtt32)
+r3:2=vrmpybsu(r1:0,r1:0)
+//CHECK: e8c0c022
+
+//M5_vrmacbsu
+//Rxx32+=vrmpybsu(Rss32,Rtt32)
+r1:0+=vrmpybsu(r1:0,r1:0)
+//CHECK: eac0c020
+
+//M5_vmpybuu
+//Rdd32=vmpybu(Rs32,Rt32)
+r3:2=vmpybu(r0,r0)
+//CHECK: e580c022
+
+//M5_vmpybsu
+//Rdd32=vmpybsu(Rs32,Rt32)
+r3:2=vmpybsu(r0,r0)
+//CHECK: e540c022
+
+//M5_vmacbuu
+//Rxx32+=vmpybu(Rs32,Rt32)
+r1:0+=vmpybu(r0,r0)
+//CHECK: e780c020
+
+//M5_vmacbsu
+//Rxx32+=vmpybsu(Rs32,Rt32)
+r1:0+=vmpybsu(r0,r0)
+//CHECK: e7c0c020
+
+//M5_vdmpybsu
+//Rdd32=vdmpybsu(Rss32,Rtt32):sat
+r3:2=vdmpybsu(r1:0,r1:0):sat
+//CHECK: e8a0c022
+
+//M5_vdmacbsu
+//Rxx32+=vdmpybsu(Rss32,Rtt32):sat
+r1:0+=vdmpybsu(r1:0,r1:0):sat
+//CHECK: ea20c020
+
+//M2_vdmacs_s0
+//Rxx32+=vdmpy(Rss32,Rtt32):sat
+r1:0+=vdmpy(r1:0,r1:0):sat
+//CHECK: ea00c080
+
+//M2_vdmacs_s1
+//Rxx32+=vdmpy(Rss32,Rtt32):<<1:sat
+r1:0+=vdmpy(r1:0,r1:0):<<1:sat
+//CHECK: ea80c080
+
+//M2_vdmpys_s0
+//Rdd32=vdmpy(Rss32,Rtt32):sat
+r3:2=vdmpy(r1:0,r1:0):sat
+//CHECK: e800c082
+
+//M2_vdmpys_s1
+//Rdd32=vdmpy(Rss32,Rtt32):<<1:sat
+r3:2=vdmpy(r1:0,r1:0):<<1:sat
+//CHECK: e880c082
+
+//M2_cmpyrs_s0
+//Rd32=cmpy(Rs32,Rt32):rnd:sat
+r2=cmpy(r0,r0):rnd:sat
+//CHECK: ed20c0c2
+
+//M2_cmpyrs_s1
+//Rd32=cmpy(Rs32,Rt32):<<1:rnd:sat
+r2=cmpy(r0,r0):<<1:rnd:sat
+//CHECK: eda0c0c2
+
+//M2_cmpyrsc_s0
+//Rd32=cmpy(Rs32,Rt32*):rnd:sat
+r2=cmpy(r0,r0*):rnd:sat
+//CHECK: ed60c0c2
+
+//M2_cmpyrsc_s1
+//Rd32=cmpy(Rs32,Rt32*):<<1:rnd:sat
+r2=cmpy(r0,r0*):<<1:rnd:sat
+//CHECK: ede0c0c2
+
+//M2_cmacs_s0
+//Rxx32+=cmpy(Rs32,Rt32):sat
+r1:0+=cmpy(r0,r0):sat
+//CHECK: e700c0c0
+
+//M2_cmacs_s1
+//Rxx32+=cmpy(Rs32,Rt32):<<1:sat
+r1:0+=cmpy(r0,r0):<<1:sat
+//CHECK: e780c0c0
+
+//M2_cmacsc_s0
+//Rxx32+=cmpy(Rs32,Rt32*):sat
+r1:0+=cmpy(r0,r0*):sat
+//CHECK: e740c0c0
+
+//M2_cmacsc_s1
+//Rxx32+=cmpy(Rs32,Rt32*):<<1:sat
+r1:0+=cmpy(r0,r0*):<<1:sat
+//CHECK: e7c0c0c0
+
+//M2_cmpys_s0
+//Rdd32=cmpy(Rs32,Rt32):sat
+r3:2=cmpy(r0,r0):sat
+//CHECK: e500c0c2
+
+//M2_cmpys_s1
+//Rdd32=cmpy(Rs32,Rt32):<<1:sat
+r3:2=cmpy(r0,r0):<<1:sat
+//CHECK: e580c0c2
+
+//M2_cmpysc_s0
+//Rdd32=cmpy(Rs32,Rt32*):sat
+r3:2=cmpy(r0,r0*):sat
+//CHECK: e540c0c2
+
+//M2_cmpysc_s1
+//Rdd32=cmpy(Rs32,Rt32*):<<1:sat
+r3:2=cmpy(r0,r0*):<<1:sat
+//CHECK: e5c0c0c2
+
+//M2_cnacs_s0
+//Rxx32-=cmpy(Rs32,Rt32):sat
+r1:0-=cmpy(r0,r0):sat
+//CHECK: e700c0e0
+
+//M2_cnacs_s1
+//Rxx32-=cmpy(Rs32,Rt32):<<1:sat
+r1:0-=cmpy(r0,r0):<<1:sat
+//CHECK: e780c0e0
+
+//M2_cnacsc_s0
+//Rxx32-=cmpy(Rs32,Rt32*):sat
+r1:0-=cmpy(r0,r0*):sat
+//CHECK: e740c0e0
+
+//M2_cnacsc_s1
+//Rxx32-=cmpy(Rs32,Rt32*):<<1:sat
+r1:0-=cmpy(r0,r0*):<<1:sat
+//CHECK: e7c0c0e0
+
+//M2_vrcmpys_s1_h
+//Rdd32=vrcmpys(Rss32,Rtt32):<<1:sat:raw:hi
+r3:2=vrcmpys(r1:0,r1:0):<<1:sat:raw:hi
+//CHECK: e8a0c082
+
+//M2_vrcmpys_s1_l
+//Rdd32=vrcmpys(Rss32,Rtt32):<<1:sat:raw:lo
+r3:2=vrcmpys(r1:0,r1:0):<<1:sat:raw:lo
+//CHECK: e8e0c082
+
+//M2_vrcmpys_acc_s1_h
+//Rxx32+=vrcmpys(Rss32,Rtt32):<<1:sat:raw:hi
+r1:0+=vrcmpys(r1:0,r1:0):<<1:sat:raw:hi
+//CHECK: eaa0c080
+
+//M2_vrcmpys_acc_s1_l
+//Rxx32+=vrcmpys(Rss32,Rtt32):<<1:sat:raw:lo
+r1:0+=vrcmpys(r1:0,r1:0):<<1:sat:raw:lo
+//CHECK: eae0c080
+
+//M2_vrcmpys_s1rp_h
+//Rd32=vrcmpys(Rss32,Rtt32):<<1:rnd:sat:raw:hi
+r2=vrcmpys(r1:0,r1:0):<<1:rnd:sat:raw:hi
+//CHECK: e9a0c0c2
+
+//M2_vrcmpys_s1rp_l
+//Rd32=vrcmpys(Rss32,Rtt32):<<1:rnd:sat:raw:lo
+r2=vrcmpys(r1:0,r1:0):<<1:rnd:sat:raw:lo
+//CHECK: e9a0c0e2
+
+//M2_mmacls_s0
+//Rxx32+=vmpyweh(Rss32,Rtt32):sat
+r1:0+=vmpyweh(r1:0,r1:0):sat
+//CHECK: ea00c0a0
+
+//M2_mmacls_s1
+//Rxx32+=vmpyweh(Rss32,Rtt32):<<1:sat
+r1:0+=vmpyweh(r1:0,r1:0):<<1:sat
+//CHECK: ea80c0a0
+
+//M2_mmachs_s0
+//Rxx32+=vmpywoh(Rss32,Rtt32):sat
+r1:0+=vmpywoh(r1:0,r1:0):sat
+//CHECK: ea00c0e0
+
+//M2_mmachs_s1
+//Rxx32+=vmpywoh(Rss32,Rtt32):<<1:sat
+r1:0+=vmpywoh(r1:0,r1:0):<<1:sat
+//CHECK: ea80c0e0
+
+//M2_mmpyl_s0
+//Rdd32=vmpyweh(Rss32,Rtt32):sat
+r3:2=vmpyweh(r1:0,r1:0):sat
+//CHECK: e800c0a2
+
+//M2_mmpyl_s1
+//Rdd32=vmpyweh(Rss32,Rtt32):<<1:sat
+r3:2=vmpyweh(r1:0,r1:0):<<1:sat
+//CHECK: e880c0a2
+
+//M2_mmpyh_s0
+//Rdd32=vmpywoh(Rss32,Rtt32):sat
+r3:2=vmpywoh(r1:0,r1:0):sat
+//CHECK: e800c0e2
+
+//M2_mmpyh_s1
+//Rdd32=vmpywoh(Rss32,Rtt32):<<1:sat
+r3:2=vmpywoh(r1:0,r1:0):<<1:sat
+//CHECK: e880c0e2
+
+//M2_mmacls_rs0
+//Rxx32+=vmpyweh(Rss32,Rtt32):rnd:sat
+r1:0+=vmpyweh(r1:0,r1:0):rnd:sat
+//CHECK: ea20c0a0
+
+//M2_mmacls_rs1
+//Rxx32+=vmpyweh(Rss32,Rtt32):<<1:rnd:sat
+r1:0+=vmpyweh(r1:0,r1:0):<<1:rnd:sat
+//CHECK: eaa0c0a0
+
+//M2_mmachs_rs0
+//Rxx32+=vmpywoh(Rss32,Rtt32):rnd:sat
+r1:0+=vmpywoh(r1:0,r1:0):rnd:sat
+//CHECK: ea20c0e0
+
+//M2_mmachs_rs1
+//Rxx32+=vmpywoh(Rss32,Rtt32):<<1:rnd:sat
+r1:0+=vmpywoh(r1:0,r1:0):<<1:rnd:sat
+//CHECK: eaa0c0e0
+
+//M2_mmpyl_rs0
+//Rdd32=vmpyweh(Rss32,Rtt32):rnd:sat
+r3:2=vmpyweh(r1:0,r1:0):rnd:sat
+//CHECK: e820c0a2
+
+//M2_mmpyl_rs1
+//Rdd32=vmpyweh(Rss32,Rtt32):<<1:rnd:sat
+r3:2=vmpyweh(r1:0,r1:0):<<1:rnd:sat
+//CHECK: e8a0c0a2
+
+//M2_mmpyh_rs0
+//Rdd32=vmpywoh(Rss32,Rtt32):rnd:sat
+r3:2=vmpywoh(r1:0,r1:0):rnd:sat
+//CHECK: e820c0e2
+
+//M2_mmpyh_rs1
+//Rdd32=vmpywoh(Rss32,Rtt32):<<1:rnd:sat
+r3:2=vmpywoh(r1:0,r1:0):<<1:rnd:sat
+//CHECK: e8a0c0e2
+
+//M4_vrmpyeh_s0
+//Rdd32=vrmpyweh(Rss32,Rtt32)
+r3:2=vrmpyweh(r1:0,r1:0)
+//CHECK: e840c082
+
+//M4_vrmpyeh_s1
+//Rdd32=vrmpyweh(Rss32,Rtt32):<<1
+r3:2=vrmpyweh(r1:0,r1:0):<<1
+//CHECK: e8c0c082
+
+//M4_vrmpyeh_acc_s0
+//Rxx32+=vrmpyweh(Rss32,Rtt32)
+r1:0+=vrmpyweh(r1:0,r1:0)
+//CHECK: ea20c0c0
+
+//M4_vrmpyeh_acc_s1
+//Rxx32+=vrmpyweh(Rss32,Rtt32):<<1
+r1:0+=vrmpyweh(r1:0,r1:0):<<1
+//CHECK: eaa0c0c0
+
+//M4_vrmpyoh_s0
+//Rdd32=vrmpywoh(Rss32,Rtt32)
+r3:2=vrmpywoh(r1:0,r1:0)
+//CHECK: e820c042
+
+//M4_vrmpyoh_s1
+//Rdd32=vrmpywoh(Rss32,Rtt32):<<1
+r3:2=vrmpywoh(r1:0,r1:0):<<1
+//CHECK: e8a0c042
+
+//M4_vrmpyoh_acc_s0
+//Rxx32+=vrmpywoh(Rss32,Rtt32)
+r1:0+=vrmpywoh(r1:0,r1:0)
+//CHECK: ea60c0c0
+
+//M4_vrmpyoh_acc_s1
+//Rxx32+=vrmpywoh(Rss32,Rtt32):<<1
+r1:0+=vrmpywoh(r1:0,r1:0):<<1
+//CHECK: eae0c0c0
+
+//M2_hmmpyl_rs1
+//Rd32=mpy(Rs32,Rt32.l):<<1:rnd:sat
+r2=mpy(r0,r0.l):<<1:rnd:sat
+//CHECK: ede0c082
+
+//M2_hmmpyh_rs1
+//Rd32=mpy(Rs32,Rt32.h):<<1:rnd:sat
+r2=mpy(r0,r0.h):<<1:rnd:sat
+//CHECK: eda0c082
+
+//M2_hmmpyl_s1
+//Rd32=mpy(Rs32,Rt32.l):<<1:sat
+r2=mpy(r0,r0.l):<<1:sat
+//CHECK: eda0c022
+
+//M2_hmmpyh_s1
+//Rd32=mpy(Rs32,Rt32.h):<<1:sat
+r2=mpy(r0,r0.h):<<1:sat
+//CHECK: eda0c002
+
+//M2_mmaculs_s0
+//Rxx32+=vmpyweuh(Rss32,Rtt32):sat
+r1:0+=vmpyweuh(r1:0,r1:0):sat
+//CHECK: ea40c0a0
+
+//M2_mmaculs_s1
+//Rxx32+=vmpyweuh(Rss32,Rtt32):<<1:sat
+r1:0+=vmpyweuh(r1:0,r1:0):<<1:sat
+//CHECK: eac0c0a0
+
+//M2_mmacuhs_s0
+//Rxx32+=vmpywouh(Rss32,Rtt32):sat
+r1:0+=vmpywouh(r1:0,r1:0):sat
+//CHECK: ea40c0e0
+
+//M2_mmacuhs_s1
+//Rxx32+=vmpywouh(Rss32,Rtt32):<<1:sat
+r1:0+=vmpywouh(r1:0,r1:0):<<1:sat
+//CHECK: eac0c0e0
+
+//M2_mmpyul_s0
+//Rdd32=vmpyweuh(Rss32,Rtt32):sat
+r3:2=vmpyweuh(r1:0,r1:0):sat
+//CHECK: e840c0a2
+
+//M2_mmpyul_s1
+//Rdd32=vmpyweuh(Rss32,Rtt32):<<1:sat
+r3:2=vmpyweuh(r1:0,r1:0):<<1:sat
+//CHECK: e8c0c0a2
+
+//M2_mmpyuh_s0
+//Rdd32=vmpywouh(Rss32,Rtt32):sat
+r3:2=vmpywouh(r1:0,r1:0):sat
+//CHECK: e840c0e2
+
+//M2_mmpyuh_s1
+//Rdd32=vmpywouh(Rss32,Rtt32):<<1:sat
+r3:2=vmpywouh(r1:0,r1:0):<<1:sat
+//CHECK: e8c0c0e2
+
+//M2_mmaculs_rs0
+//Rxx32+=vmpyweuh(Rss32,Rtt32):rnd:sat
+r1:0+=vmpyweuh(r1:0,r1:0):rnd:sat
+//CHECK: ea60c0a0
+
+//M2_mmaculs_rs1
+//Rxx32+=vmpyweuh(Rss32,Rtt32):<<1:rnd:sat
+r1:0+=vmpyweuh(r1:0,r1:0):<<1:rnd:sat
+//CHECK: eae0c0a0
+
+//M2_mmacuhs_rs0
+//Rxx32+=vmpywouh(Rss32,Rtt32):rnd:sat
+r1:0+=vmpywouh(r1:0,r1:0):rnd:sat
+//CHECK: ea60c0e0
+
+//M2_mmacuhs_rs1
+//Rxx32+=vmpywouh(Rss32,Rtt32):<<1:rnd:sat
+r1:0+=vmpywouh(r1:0,r1:0):<<1:rnd:sat
+//CHECK: eae0c0e0
+
+//M2_mmpyul_rs0
+//Rdd32=vmpyweuh(Rss32,Rtt32):rnd:sat
+r3:2=vmpyweuh(r1:0,r1:0):rnd:sat
+//CHECK: e860c0a2
+
+//M2_mmpyul_rs1
+//Rdd32=vmpyweuh(Rss32,Rtt32):<<1:rnd:sat
+r3:2=vmpyweuh(r1:0,r1:0):<<1:rnd:sat
+//CHECK: e8e0c0a2
+
+//M2_mmpyuh_rs0
+//Rdd32=vmpywouh(Rss32,Rtt32):rnd:sat
+r3:2=vmpywouh(r1:0,r1:0):rnd:sat
+//CHECK: e860c0e2
+
+//M2_mmpyuh_rs1
+//Rdd32=vmpywouh(Rss32,Rtt32):<<1:rnd:sat
+r3:2=vmpywouh(r1:0,r1:0):<<1:rnd:sat
+//CHECK: e8e0c0e2
+
+//M2_vrcmaci_s0
+//Rxx32+=vrcmpyi(Rss32,Rtt32)
+r1:0+=vrcmpyi(r1:0,r1:0)
+//CHECK: ea00c000
+
+//M2_vrcmacr_s0
+//Rxx32+=vrcmpyr(Rss32,Rtt32)
+r1:0+=vrcmpyr(r1:0,r1:0)
+//CHECK: ea00c020
+
+//M2_vrcmaci_s0c
+//Rxx32+=vrcmpyi(Rss32,Rtt32*)
+r1:0+=vrcmpyi(r1:0,r1:0*)
+//CHECK: ea40c000
+
+//M2_vrcmacr_s0c
+//Rxx32+=vrcmpyr(Rss32,Rtt32*)
+r1:0+=vrcmpyr(r1:0,r1:0*)
+//CHECK: ea60c020
+
+//M2_cmaci_s0
+//Rxx32+=cmpyi(Rs32,Rt32)
+r1:0+=cmpyi(r0,r0)
+//CHECK: e700c020
+
+//M2_cmacr_s0
+//Rxx32+=cmpyr(Rs32,Rt32)
+r1:0+=cmpyr(r0,r0)
+//CHECK: e700c040
+
+//M2_vrcmpyi_s0
+//Rdd32=vrcmpyi(Rss32,Rtt32)
+r3:2=vrcmpyi(r1:0,r1:0)
+//CHECK: e800c002
+
+//M2_vrcmpyr_s0
+//Rdd32=vrcmpyr(Rss32,Rtt32)
+r3:2=vrcmpyr(r1:0,r1:0)
+//CHECK: e800c022
+
+//M2_vrcmpyi_s0c
+//Rdd32=vrcmpyi(Rss32,Rtt32*)
+r3:2=vrcmpyi(r1:0,r1:0*)
+//CHECK: e840c002
+
+//M2_vrcmpyr_s0c
+//Rdd32=vrcmpyr(Rss32,Rtt32*)
+r3:2=vrcmpyr(r1:0,r1:0*)
+//CHECK: e860c022
+
+//M2_cmpyi_s0
+//Rdd32=cmpyi(Rs32,Rt32)
+r3:2=cmpyi(r0,r0)
+//CHECK: e500c022
+
+//M2_cmpyr_s0
+//Rdd32=cmpyr(Rs32,Rt32)
+r3:2=cmpyr(r0,r0)
+//CHECK: e500c042
+
+//M4_cmpyi_wh
+//Rd32=cmpyiwh(Rss32,Rt32):<<1:rnd:sat
+r2=cmpyiwh(r1:0,r0):<<1:rnd:sat
+//CHECK: c500c082
+
+//M4_cmpyr_wh
+//Rd32=cmpyrwh(Rss32,Rt32):<<1:rnd:sat
+r2=cmpyrwh(r1:0,r0):<<1:rnd:sat
+//CHECK: c500c0c2
+
+//M4_cmpyi_whc
+//Rd32=cmpyiwh(Rss32,Rt32*):<<1:rnd:sat
+r2=cmpyiwh(r1:0,r0*):<<1:rnd:sat
+//CHECK: c500c0a2
+
+//M4_cmpyr_whc
+//Rd32=cmpyrwh(Rss32,Rt32*):<<1:rnd:sat
+r2=cmpyrwh(r1:0,r0*):<<1:rnd:sat
+//CHECK: c500c0e2
+
+//M2_vcmpy_s0_sat_i
+//Rdd32=vcmpyi(Rss32,Rtt32):sat
+r3:2=vcmpyi(r1:0,r1:0):sat
+//CHECK: e840c0c2
+
+//M2_vcmpy_s0_sat_r
+//Rdd32=vcmpyr(Rss32,Rtt32):sat
+r3:2=vcmpyr(r1:0,r1:0):sat
+//CHECK: e820c0c2
+
+//M2_vcmpy_s1_sat_i
+//Rdd32=vcmpyi(Rss32,Rtt32):<<1:sat
+r3:2=vcmpyi(r1:0,r1:0):<<1:sat
+//CHECK: e8c0c0c2
+
+//M2_vcmpy_s1_sat_r
+//Rdd32=vcmpyr(Rss32,Rtt32):<<1:sat
+r3:2=vcmpyr(r1:0,r1:0):<<1:sat
+//CHECK: e8a0c0c2
+
+//M2_vcmac_s0_sat_i
+//Rxx32+=vcmpyi(Rss32,Rtt32):sat
+r1:0+=vcmpyi(r1:0,r1:0):sat
+//CHECK: ea40c080
+
+//M2_vcmac_s0_sat_r
+//Rxx32+=vcmpyr(Rss32,Rtt32):sat
+r1:0+=vcmpyr(r1:0,r1:0):sat
+//CHECK: ea20c080
+
+//S2_vcrotate
+//Rdd32=vcrotate(Rss32,Rt32)
+r3:2=vcrotate(r1:0,r0)
+//CHECK: c3c0c002
+
+//S4_vrcrotate_acc
+//Rxx32+=vrcrotate(Rss32,Rt32,#u2)
+r1:0+=vrcrotate(r1:0,r0,#0x0)
+//CHECK: cba0c000
+
+//S4_vrcrotate
+//Rdd32=vrcrotate(Rss32,Rt32,#u2)
+r3:2=vrcrotate(r1:0,r0,#0x0)
+//CHECK: c3c0c0c2
+
+//S2_vcnegh
+//Rdd32=vcnegh(Rss32,Rt32)
+r3:2=vcnegh(r1:0,r0)
+//CHECK: c3c0c042
+
+//S2_vrcnegh
+//Rxx32+=vrcnegh(Rss32,Rt32)
+r1:0+=vrcnegh(r1:0,r0)
+//CHECK: cb20e0e0
+
+//M4_pmpyw
+//Rdd32=pmpyw(Rs32,Rt32)
+r3:2=pmpyw(r0,r0)
+//CHECK: e540c0e2
+
+//M4_vpmpyh
+//Rdd32=vpmpyh(Rs32,Rt32)
+r3:2=vpmpyh(r0,r0)
+//CHECK: e5c0c0e2
+
+//M4_pmpyw_acc
+//Rxx32^=pmpyw(Rs32,Rt32)
+r1:0^=pmpyw(r0,r0)
+//CHECK: e720c0e0
+
+//M4_vpmpyh_acc
+//Rxx32^=vpmpyh(Rs32,Rt32)
+r1:0^=vpmpyh(r0,r0)
+//CHECK: e7a0c0e0
+
+//M7_dcmpyrw
+//Rdd32=cmpyrw(Rss32,Rtt32)
+r3:2=cmpyrw(r1:0,r1:0)
+//CHECK: e880c042
+
+//M7_dcmpyrw_acc
+//Rxx32+=cmpyrw(Rss32,Rtt32)
+r1:0+=cmpyrw(r1:0,r1:0)
+//CHECK: ea80c040
+
+//M7_dcmpyrwc
+//Rdd32=cmpyrw(Rss32,Rtt32*)
+r3:2=cmpyrw(r1:0,r1:0*)
+//CHECK: e8c0c042
+
+//M7_dcmpyrwc_acc
+//Rxx32+=cmpyrw(Rss32,Rtt32*)
+r1:0+=cmpyrw(r1:0,r1:0*)
+//CHECK: eac0c040
+
+//M7_dcmpyiw
+//Rdd32=cmpyiw(Rss32,Rtt32)
+r3:2=cmpyiw(r1:0,r1:0)
+//CHECK: e860c042
+
+//M7_dcmpyiw_acc
+//Rxx32+=cmpyiw(Rss32,Rtt32)
+r1:0+=cmpyiw(r1:0,r1:0)
+//CHECK: ea60c040
+
+//M7_dcmpyiwc
+//Rdd32=cmpyiw(Rss32,Rtt32*)
+r3:2=cmpyiw(r1:0,r1:0*)
+//CHECK: e8e0c042
+
+//M7_dcmpyiwc_acc
+//Rxx32+=cmpyiw(Rss32,Rtt32*)
+r1:0+=cmpyiw(r1:0,r1:0*)
+//CHECK: ea40c0c0
+
+//M7_wcmpyrw
+//Rd32=cmpyrw(Rss32,Rtt32):<<1:sat
+r2=cmpyrw(r1:0,r1:0):<<1:sat
+//CHECK: e940c002
+
+//M7_wcmpyrwc
+//Rd32=cmpyrw(Rss32,Rtt32*):<<1:sat
+r2=cmpyrw(r1:0,r1:0*):<<1:sat
+//CHECK: e960c002
+
+//M7_wcmpyiw
+//Rd32=cmpyiw(Rss32,Rtt32):<<1:sat
+r2=cmpyiw(r1:0,r1:0):<<1:sat
+//CHECK: e920c002
+
+//M7_wcmpyiwc
+//Rd32=cmpyiw(Rss32,Rtt32*):<<1:sat
+r2=cmpyiw(r1:0,r1:0*):<<1:sat
+//CHECK: e900c082
+
+//M7_wcmpyrw_rnd
+//Rd32=cmpyrw(Rss32,Rtt32):<<1:rnd:sat
+r2=cmpyrw(r1:0,r1:0):<<1:rnd:sat
+//CHECK: e9c0c002
+
+//M7_wcmpyrwc_rnd
+//Rd32=cmpyrw(Rss32,Rtt32*):<<1:rnd:sat
+r2=cmpyrw(r1:0,r1:0*):<<1:rnd:sat
+//CHECK: e9e0c002
+
+//M7_wcmpyiw_rnd
+//Rd32=cmpyiw(Rss32,Rtt32):<<1:rnd:sat
+r2=cmpyiw(r1:0,r1:0):<<1:rnd:sat
+//CHECK: e9a0c002
+
+//M7_wcmpyiwc_rnd
+//Rd32=cmpyiw(Rss32,Rtt32*):<<1:rnd:sat
+r2=cmpyiw(r1:0,r1:0*):<<1:rnd:sat
+//CHECK: e980c082
+
+//F2_sfadd
+//Rd32=sfadd(Rs32,Rt32)
+r2=sfadd(r0,r0)
+//CHECK: eb00c002
+
+//F2_sfsub
+//Rd32=sfsub(Rs32,Rt32)
+r2=sfsub(r0,r0)
+//CHECK: eb00c022
+
+//F2_sfmpy
+//Rd32=sfmpy(Rs32,Rt32)
+r2=sfmpy(r0,r0)
+//CHECK: eb40c002
+
+//F2_sffma
+//Rx32+=sfmpy(Rs32,Rt32)
+r6+=sfmpy(r0,r0)
+//CHECK: ef00c086
+
+//F2_sffma_sc
+//Rx32+=sfmpy(Rs32,Rt32,Pu4):scale
+r6+=sfmpy(r0,r0,p0):scale
+//CHECK: ef60c086
+
+//F2_sffms
+//Rx32-=sfmpy(Rs32,Rt32)
+r6-=sfmpy(r0,r0)
+//CHECK: ef00c0a6
+
+//F2_sffma_lib
+//Rx32+=sfmpy(Rs32,Rt32):lib
+r6+=sfmpy(r0,r0):lib
+//CHECK: ef00c0c6
+
+//F2_sffms_lib
+//Rx32-=sfmpy(Rs32,Rt32):lib
+r6-=sfmpy(r0,r0):lib
+//CHECK: ef00c0e6
+
+//F2_sfcmpeq
+//Pd4=sfcmp.eq(Rs32,Rt32)
+p0=sfcmp.eq(r0,r0)
+//CHECK: c7e0c060
+
+//F2_sfcmpgt
+//Pd4=sfcmp.gt(Rs32,Rt32)
+p0=sfcmp.gt(r0,r0)
+//CHECK: c7e0c080
+
+//F2_sfcmpge
+//Pd4=sfcmp.ge(Rs32,Rt32)
+p0=sfcmp.ge(r0,r0)
+//CHECK: c7e0c000
+
+//F2_sfcmpuo
+//Pd4=sfcmp.uo(Rs32,Rt32)
+p0=sfcmp.uo(r0,r0)
+//CHECK: c7e0c020
+
+//F2_sfmax
+//Rd32=sfmax(Rs32,Rt32)
+r2=sfmax(r0,r0)
+//CHECK: eb80c002
+
+//F2_sfmin
+//Rd32=sfmin(Rs32,Rt32)
+r2=sfmin(r0,r0)
+//CHECK: eb80c022
+
+//F2_sfclass
+//Pd4=sfclass(Rs32,#u5)
+p0=sfclass(r0,#0x0)
+//CHECK: 85e0c000
+
+//F2_sfimm_p
+//Rd32=sfmake(#u10):pos
+r2=sfmake(#0x0):pos
+//CHECK: d600c002
+
+//F2_sfimm_n
+//Rd32=sfmake(#u10):neg
+r2=sfmake(#0x0):neg
+//CHECK: d640c002
+
+//F2_sfrecipa
+//Rd32,Pe4=sfrecipa(Rs32,Rt32)
+r2,p0=sfrecipa(r0,r0)
+//CHECK: ebe0c082
+
+//F2_sffixupn
+//Rd32=sffixupn(Rs32,Rt32)
+r2=sffixupn(r0,r0)
+//CHECK: ebc0c002
+
+//F2_sffixupd
+//Rd32=sffixupd(Rs32,Rt32)
+r2=sffixupd(r0,r0)
+//CHECK: ebc0c022
+
+//F2_sfinvsqrta
+//Rd32,Pe4=sfinvsqrta(Rs32)
+r2,p0=sfinvsqrta(r0)
+//CHECK: 8be0c002
+
+//F2_sffixupr
+//Rd32=sffixupr(Rs32)
+r2=sffixupr(r0)
+//CHECK: 8ba0c002
+
+//F2_dfadd
+//Rdd32=dfadd(Rss32,Rtt32)
+r3:2=dfadd(r1:0,r1:0)
+//CHECK: e800c062
+
+//F2_dfsub
+//Rdd32=dfsub(Rss32,Rtt32)
+r3:2=dfsub(r1:0,r1:0)
+//CHECK: e880c062
+
+//F2_dfmax
+//Rdd32=dfmax(Rss32,Rtt32)
+r3:2=dfmax(r1:0,r1:0)
+//CHECK: e820c062
+
+//F2_dfmin
+//Rdd32=dfmin(Rss32,Rtt32)
+r3:2=dfmin(r1:0,r1:0)
+//CHECK: e8c0c062
+
+//F2_dfmpyfix
+//Rdd32=dfmpyfix(Rss32,Rtt32)
+r3:2=dfmpyfix(r1:0,r1:0)
+//CHECK: e840c062
+
+//F2_dfmpyll
+//Rdd32=dfmpyll(Rss32,Rtt32)
+r3:2=dfmpyll(r1:0,r1:0)
+//CHECK: e8a0c062
+
+//F2_dfmpylh
+//Rxx32+=dfmpylh(Rss32,Rtt32)
+r1:0+=dfmpylh(r1:0,r1:0)
+//CHECK: ea00c060
+
+//F2_dfmpyhh
+//Rxx32+=dfmpyhh(Rss32,Rtt32)
+r1:0+=dfmpyhh(r1:0,r1:0)
+//CHECK: ea80c060
+
+//F2_dfcmpeq
+//Pd4=dfcmp.eq(Rss32,Rtt32)
+p0=dfcmp.eq(r1:0,r1:0)
+//CHECK: d2e0c000
+
+//F2_dfcmpgt
+//Pd4=dfcmp.gt(Rss32,Rtt32)
+p0=dfcmp.gt(r1:0,r1:0)
+//CHECK: d2e0c020
+
+//F2_dfcmpge
+//Pd4=dfcmp.ge(Rss32,Rtt32)
+p0=dfcmp.ge(r1:0,r1:0)
+//CHECK: d2e0c040
+
+//F2_dfcmpuo
+//Pd4=dfcmp.uo(Rss32,Rtt32)
+p0=dfcmp.uo(r1:0,r1:0)
+//CHECK: d2e0c060
+
+//F2_dfclass
+//Pd4=dfclass(Rss32,#u5)
+p0=dfclass(r1:0,#0x0)
+//CHECK: dc80c010
+
+//F2_dfimm_p
+//Rdd32=dfmake(#u10):pos
+r3:2=dfmake(#0x0):pos
+//CHECK: d900c002
+
+//F2_dfimm_n
+//Rdd32=dfmake(#u10):neg
+r3:2=dfmake(#0x0):neg
+//CHECK: d940c002
+
+//F2_conv_sf2df
+//Rdd32=convert_sf2df(Rs32)
+r3:2=convert_sf2df(r0)
+//CHECK: 8480c002
+
+//F2_conv_df2sf
+//Rd32=convert_df2sf(Rss32)
+r2=convert_df2sf(r1:0)
+//CHECK: 8800c022
+
+//F2_conv_uw2sf
+//Rd32=convert_uw2sf(Rs32)
+r2=convert_uw2sf(r0)
+//CHECK: 8b20c002
+
+//F2_conv_uw2df
+//Rdd32=convert_uw2df(Rs32)
+r3:2=convert_uw2df(r0)
+//CHECK: 8480c022
+
+//F2_conv_w2sf
+//Rd32=convert_w2sf(Rs32)
+r2=convert_w2sf(r0)
+//CHECK: 8b40c002
+
+//F2_conv_w2df
+//Rdd32=convert_w2df(Rs32)
+r3:2=convert_w2df(r0)
+//CHECK: 8480c042
+
+//F2_conv_ud2sf
+//Rd32=convert_ud2sf(Rss32)
+r2=convert_ud2sf(r1:0)
+//CHECK: 8820c022
+
+//F2_conv_ud2df
+//Rdd32=convert_ud2df(Rss32)
+r3:2=convert_ud2df(r1:0)
+//CHECK: 80e0c042
+
+//F2_conv_d2sf
+//Rd32=convert_d2sf(Rss32)
+r2=convert_d2sf(r1:0)
+//CHECK: 8840c022
+
+//F2_conv_d2df
+//Rdd32=convert_d2df(Rss32)
+r3:2=convert_d2df(r1:0)
+//CHECK: 80e0c062
+
+//F2_conv_sf2uw
+//Rd32=convert_sf2uw(Rs32)
+r2=convert_sf2uw(r0)
+//CHECK: 8b60c002
+
+//F2_conv_sf2w
+//Rd32=convert_sf2w(Rs32)
+r2=convert_sf2w(r0)
+//CHECK: 8b80c002
+
+//F2_conv_sf2ud
+//Rdd32=convert_sf2ud(Rs32)
+r3:2=convert_sf2ud(r0)
+//CHECK: 8480c062
+
+//F2_conv_sf2d
+//Rdd32=convert_sf2d(Rs32)
+r3:2=convert_sf2d(r0)
+//CHECK: 8480c082
+
+//F2_conv_df2uw
+//Rd32=convert_df2uw(Rss32)
+r2=convert_df2uw(r1:0)
+//CHECK: 8860c022
+
+//F2_conv_df2w
+//Rd32=convert_df2w(Rss32)
+r2=convert_df2w(r1:0)
+//CHECK: 8880c022
+
+//F2_conv_df2ud
+//Rdd32=convert_df2ud(Rss32)
+r3:2=convert_df2ud(r1:0)
+//CHECK: 80e0c022
+
+//F2_conv_df2d
+//Rdd32=convert_df2d(Rss32)
+r3:2=convert_df2d(r1:0)
+//CHECK: 80e0c002
+
+//F2_conv_sf2uw_chop
+//Rd32=convert_sf2uw(Rs32):chop
+r2=convert_sf2uw(r0):chop
+//CHECK: 8b60c022
+
+//F2_conv_sf2w_chop
+//Rd32=convert_sf2w(Rs32):chop
+r2=convert_sf2w(r0):chop
+//CHECK: 8b80c022
+
+//F2_conv_sf2ud_chop
+//Rdd32=convert_sf2ud(Rs32):chop
+r3:2=convert_sf2ud(r0):chop
+//CHECK: 8480c0a2
+
+//F2_conv_sf2d_chop
+//Rdd32=convert_sf2d(Rs32):chop
+r3:2=convert_sf2d(r0):chop
+//CHECK: 8480c0c2
+
+//F2_conv_df2uw_chop
+//Rd32=convert_df2uw(Rss32):chop
+r2=convert_df2uw(r1:0):chop
+//CHECK: 88a0c022
+
+//F2_conv_df2w_chop
+//Rd32=convert_df2w(Rss32):chop
+r2=convert_df2w(r1:0):chop
+//CHECK: 88e0c022
+
+//F2_conv_df2ud_chop
+//Rdd32=convert_df2ud(Rss32):chop
+r3:2=convert_df2ud(r1:0):chop
+//CHECK: 80e0c0e2
+
+//F2_conv_df2d_chop
+//Rdd32=convert_df2d(Rss32):chop
+r3:2=convert_df2d(r1:0):chop
+//CHECK: 80e0c0c2
+
+//S2_asr_r_r
+//Rd32=asr(Rs32,Rt32)
+r2=asr(r0,r0)
+//CHECK: c640c002
+
+//S2_asl_r_r
+//Rd32=asl(Rs32,Rt32)
+r2=asl(r0,r0)
+//CHECK: c640c082
+
+//S2_lsr_r_r
+//Rd32=lsr(Rs32,Rt32)
+r2=lsr(r0,r0)
+//CHECK: c640c042
+
+//S2_lsl_r_r
+//Rd32=lsl(Rs32,Rt32)
+r2=lsl(r0,r0)
+//CHECK: c640c0c2
+
+//S2_asr_r_p
+//Rdd32=asr(Rss32,Rt32)
+r3:2=asr(r1:0,r0)
+//CHECK: c380c002
+
+//S2_asl_r_p
+//Rdd32=asl(Rss32,Rt32)
+r3:2=asl(r1:0,r0)
+//CHECK: c380c082
+
+//S2_lsr_r_p
+//Rdd32=lsr(Rss32,Rt32)
+r3:2=lsr(r1:0,r0)
+//CHECK: c380c042
+
+//S2_lsl_r_p
+//Rdd32=lsl(Rss32,Rt32)
+r3:2=lsl(r1:0,r0)
+//CHECK: c380c0c2
+
+//S2_asr_r_r_acc
+//Rx32+=asr(Rs32,Rt32)
+r6+=asr(r0,r0)
+//CHECK: ccc0c006
+
+//S2_asl_r_r_acc
+//Rx32+=asl(Rs32,Rt32)
+r6+=asl(r0,r0)
+//CHECK: ccc0c086
+
+//S2_lsr_r_r_acc
+//Rx32+=lsr(Rs32,Rt32)
+r6+=lsr(r0,r0)
+//CHECK: ccc0c046
+
+//S2_lsl_r_r_acc
+//Rx32+=lsl(Rs32,Rt32)
+r6+=lsl(r0,r0)
+//CHECK: ccc0c0c6
+
+//S2_asr_r_p_acc
+//Rxx32+=asr(Rss32,Rt32)
+r1:0+=asr(r1:0,r0)
+//CHECK: cbc0c000
+
+//S2_asl_r_p_acc
+//Rxx32+=asl(Rss32,Rt32)
+r1:0+=asl(r1:0,r0)
+//CHECK: cbc0c080
+
+//S2_lsr_r_p_acc
+//Rxx32+=lsr(Rss32,Rt32)
+r1:0+=lsr(r1:0,r0)
+//CHECK: cbc0c040
+
+//S2_lsl_r_p_acc
+//Rxx32+=lsl(Rss32,Rt32)
+r1:0+=lsl(r1:0,r0)
+//CHECK: cbc0c0c0
+
+//S2_asr_r_r_nac
+//Rx32-=asr(Rs32,Rt32)
+r6-=asr(r0,r0)
+//CHECK: cc80c006
+
+//S2_asl_r_r_nac
+//Rx32-=asl(Rs32,Rt32)
+r6-=asl(r0,r0)
+//CHECK: cc80c086
+
+//S2_lsr_r_r_nac
+//Rx32-=lsr(Rs32,Rt32)
+r6-=lsr(r0,r0)
+//CHECK: cc80c046
+
+//S2_lsl_r_r_nac
+//Rx32-=lsl(Rs32,Rt32)
+r6-=lsl(r0,r0)
+//CHECK: cc80c0c6
+
+//S2_asr_r_p_nac
+//Rxx32-=asr(Rss32,Rt32)
+r1:0-=asr(r1:0,r0)
+//CHECK: cb80c000
+
+//S2_asl_r_p_nac
+//Rxx32-=asl(Rss32,Rt32)
+r1:0-=asl(r1:0,r0)
+//CHECK: cb80c080
+
+//S2_lsr_r_p_nac
+//Rxx32-=lsr(Rss32,Rt32)
+r1:0-=lsr(r1:0,r0)
+//CHECK: cb80c040
+
+//S2_lsl_r_p_nac
+//Rxx32-=lsl(Rss32,Rt32)
+r1:0-=lsl(r1:0,r0)
+//CHECK: cb80c0c0
+
+//S2_asr_r_r_and
+//Rx32&=asr(Rs32,Rt32)
+r6&=asr(r0,r0)
+//CHECK: cc40c006
+
+//S2_asl_r_r_and
+//Rx32&=asl(Rs32,Rt32)
+r6&=asl(r0,r0)
+//CHECK: cc40c086
+
+//S2_lsr_r_r_and
+//Rx32&=lsr(Rs32,Rt32)
+r6&=lsr(r0,r0)
+//CHECK: cc40c046
+
+//S2_lsl_r_r_and
+//Rx32&=lsl(Rs32,Rt32)
+r6&=lsl(r0,r0)
+//CHECK: cc40c0c6
+
+//S2_asr_r_r_or
+//Rx32|=asr(Rs32,Rt32)
+r6|=asr(r0,r0)
+//CHECK: cc00c006
+
+//S2_asl_r_r_or
+//Rx32|=asl(Rs32,Rt32)
+r6|=asl(r0,r0)
+//CHECK: cc00c086
+
+//S2_lsr_r_r_or
+//Rx32|=lsr(Rs32,Rt32)
+r6|=lsr(r0,r0)
+//CHECK: cc00c046
+
+//S2_lsl_r_r_or
+//Rx32|=lsl(Rs32,Rt32)
+r6|=lsl(r0,r0)
+//CHECK: cc00c0c6
+
+//S2_asr_r_p_and
+//Rxx32&=asr(Rss32,Rt32)
+r1:0&=asr(r1:0,r0)
+//CHECK: cb40c000
+
+//S2_asl_r_p_and
+//Rxx32&=asl(Rss32,Rt32)
+r1:0&=asl(r1:0,r0)
+//CHECK: cb40c080
+
+//S2_lsr_r_p_and
+//Rxx32&=lsr(Rss32,Rt32)
+r1:0&=lsr(r1:0,r0)
+//CHECK: cb40c040
+
+//S2_lsl_r_p_and
+//Rxx32&=lsl(Rss32,Rt32)
+r1:0&=lsl(r1:0,r0)
+//CHECK: cb40c0c0
+
+//S2_asr_r_p_or
+//Rxx32|=asr(Rss32,Rt32)
+r1:0|=asr(r1:0,r0)
+//CHECK: cb00c000
+
+//S2_asl_r_p_or
+//Rxx32|=asl(Rss32,Rt32)
+r1:0|=asl(r1:0,r0)
+//CHECK: cb00c080
+
+//S2_lsr_r_p_or
+//Rxx32|=lsr(Rss32,Rt32)
+r1:0|=lsr(r1:0,r0)
+//CHECK: cb00c040
+
+//S2_lsl_r_p_or
+//Rxx32|=lsl(Rss32,Rt32)
+r1:0|=lsl(r1:0,r0)
+//CHECK: cb00c0c0
+
+//S2_asr_r_p_xor
+//Rxx32^=asr(Rss32,Rt32)
+r1:0^=asr(r1:0,r0)
+//CHECK: cb60c000
+
+//S2_asl_r_p_xor
+//Rxx32^=asl(Rss32,Rt32)
+r1:0^=asl(r1:0,r0)
+//CHECK: cb60c080
+
+//S2_lsr_r_p_xor
+//Rxx32^=lsr(Rss32,Rt32)
+r1:0^=lsr(r1:0,r0)
+//CHECK: cb60c040
+
+//S2_lsl_r_p_xor
+//Rxx32^=lsl(Rss32,Rt32)
+r1:0^=lsl(r1:0,r0)
+//CHECK: cb60c0c0
+
+//S2_asr_r_r_sat
+//Rd32=asr(Rs32,Rt32):sat
+r2=asr(r0,r0):sat
+//CHECK: c600c002
+
+//S2_asl_r_r_sat
+//Rd32=asl(Rs32,Rt32):sat
+r2=asl(r0,r0):sat
+//CHECK: c600c082
+
+//S2_asr_i_r
+//Rd32=asr(Rs32,#u5)
+r2=asr(r0,#0x0)
+//CHECK: 8c00c002
+
+//S2_lsr_i_r
+//Rd32=lsr(Rs32,#u5)
+r2=lsr(r0,#0x0)
+//CHECK: 8c00c022
+
+//S2_asl_i_r
+//Rd32=asl(Rs32,#u5)
+r2=asl(r0,#0x0)
+//CHECK: 8c00c042
+
+//S6_rol_i_r
+//Rd32=rol(Rs32,#u5)
+r2=rol(r0,#0x0)
+//CHECK: 8c00c062
+
+//S2_asr_i_p
+//Rdd32=asr(Rss32,#u6)
+r3:2=asr(r1:0,#0x0)
+//CHECK: 8000c002
+
+//S2_lsr_i_p
+//Rdd32=lsr(Rss32,#u6)
+r3:2=lsr(r1:0,#0x0)
+//CHECK: 8000c022
+
+//S2_asl_i_p
+//Rdd32=asl(Rss32,#u6)
+r3:2=asl(r1:0,#0x0)
+//CHECK: 8000c042
+
+//S6_rol_i_p
+//Rdd32=rol(Rss32,#u6)
+r3:2=rol(r1:0,#0x0)
+//CHECK: 8000c062
+
+//S2_asr_i_r_acc
+//Rx32+=asr(Rs32,#u5)
+r6+=asr(r0,#0x0)
+//CHECK: 8e00c086
+
+//S2_lsr_i_r_acc
+//Rx32+=lsr(Rs32,#u5)
+r6+=lsr(r0,#0x0)
+//CHECK: 8e00c0a6
+
+//S2_asl_i_r_acc
+//Rx32+=asl(Rs32,#u5)
+r6+=asl(r0,#0x0)
+//CHECK: 8e00c0c6
+
+//S6_rol_i_r_acc
+//Rx32+=rol(Rs32,#u5)
+r6+=rol(r0,#0x0)
+//CHECK: 8e00c0e6
+
+//S2_asr_i_p_acc
+//Rxx32+=asr(Rss32,#u6)
+r1:0+=asr(r1:0,#0x0)
+//CHECK: 8200c080
+
+//S2_lsr_i_p_acc
+//Rxx32+=lsr(Rss32,#u6)
+r1:0+=lsr(r1:0,#0x0)
+//CHECK: 8200c0a0
+
+//S2_asl_i_p_acc
+//Rxx32+=asl(Rss32,#u6)
+r1:0+=asl(r1:0,#0x0)
+//CHECK: 8200c0c0
+
+//S6_rol_i_p_acc
+//Rxx32+=rol(Rss32,#u6)
+r1:0+=rol(r1:0,#0x0)
+//CHECK: 8200c0e0
+
+//S2_asr_i_r_nac
+//Rx32-=asr(Rs32,#u5)
+r6-=asr(r0,#0x0)
+//CHECK: 8e00c006
+
+//S2_lsr_i_r_nac
+//Rx32-=lsr(Rs32,#u5)
+r6-=lsr(r0,#0x0)
+//CHECK: 8e00c026
+
+//S2_asl_i_r_nac
+//Rx32-=asl(Rs32,#u5)
+r6-=asl(r0,#0x0)
+//CHECK: 8e00c046
+
+//S6_rol_i_r_nac
+//Rx32-=rol(Rs32,#u5)
+r6-=rol(r0,#0x0)
+//CHECK: 8e00c066
+
+//S2_asr_i_p_nac
+//Rxx32-=asr(Rss32,#u6)
+r1:0-=asr(r1:0,#0x0)
+//CHECK: 8200c000
+
+//S2_lsr_i_p_nac
+//Rxx32-=lsr(Rss32,#u6)
+r1:0-=lsr(r1:0,#0x0)
+//CHECK: 8200c020
+
+//S2_asl_i_p_nac
+//Rxx32-=asl(Rss32,#u6)
+r1:0-=asl(r1:0,#0x0)
+//CHECK: 8200c040
+
+//S6_rol_i_p_nac
+//Rxx32-=rol(Rss32,#u6)
+r1:0-=rol(r1:0,#0x0)
+//CHECK: 8200c060
+
+//S2_lsr_i_r_xacc
+//Rx32^=lsr(Rs32,#u5)
+r6^=lsr(r0,#0x0)
+//CHECK: 8e80c026
+
+//S2_asl_i_r_xacc
+//Rx32^=asl(Rs32,#u5)
+r6^=asl(r0,#0x0)
+//CHECK: 8e80c046
+
+//S6_rol_i_r_xacc
+//Rx32^=rol(Rs32,#u5)
+r6^=rol(r0,#0x0)
+//CHECK: 8e80c066
+
+//S2_lsr_i_p_xacc
+//Rxx32^=lsr(Rss32,#u6)
+r1:0^=lsr(r1:0,#0x0)
+//CHECK: 8280c020
+
+//S2_asl_i_p_xacc
+//Rxx32^=asl(Rss32,#u6)
+r1:0^=asl(r1:0,#0x0)
+//CHECK: 8280c040
+
+//S6_rol_i_p_xacc
+//Rxx32^=rol(Rss32,#u6)
+r1:0^=rol(r1:0,#0x0)
+//CHECK: 8280c060
+
+//S2_asr_i_r_and
+//Rx32&=asr(Rs32,#u5)
+r6&=asr(r0,#0x0)
+//CHECK: 8e40c006
+
+//S2_lsr_i_r_and
+//Rx32&=lsr(Rs32,#u5)
+r6&=lsr(r0,#0x0)
+//CHECK: 8e40c026
+
+//S2_asl_i_r_and
+//Rx32&=asl(Rs32,#u5)
+r6&=asl(r0,#0x0)
+//CHECK: 8e40c046
+
+//S6_rol_i_r_and
+//Rx32&=rol(Rs32,#u5)
+r6&=rol(r0,#0x0)
+//CHECK: 8e40c066
+
+//S2_asr_i_r_or
+//Rx32|=asr(Rs32,#u5)
+r6|=asr(r0,#0x0)
+//CHECK: 8e40c086
+
+//S2_lsr_i_r_or
+//Rx32|=lsr(Rs32,#u5)
+r6|=lsr(r0,#0x0)
+//CHECK: 8e40c0a6
+
+//S2_asl_i_r_or
+//Rx32|=asl(Rs32,#u5)
+r6|=asl(r0,#0x0)
+//CHECK: 8e40c0c6
+
+//S6_rol_i_r_or
+//Rx32|=rol(Rs32,#u5)
+r6|=rol(r0,#0x0)
+//CHECK: 8e40c0e6
+
+//S2_asr_i_p_and
+//Rxx32&=asr(Rss32,#u6)
+r1:0&=asr(r1:0,#0x0)
+//CHECK: 8240c000
+
+//S2_lsr_i_p_and
+//Rxx32&=lsr(Rss32,#u6)
+r1:0&=lsr(r1:0,#0x0)
+//CHECK: 8240c020
+
+//S2_asl_i_p_and
+//Rxx32&=asl(Rss32,#u6)
+r1:0&=asl(r1:0,#0x0)
+//CHECK: 8240c040
+
+//S6_rol_i_p_and
+//Rxx32&=rol(Rss32,#u6)
+r1:0&=rol(r1:0,#0x0)
+//CHECK: 8240c060
+
+//S2_asr_i_p_or
+//Rxx32|=asr(Rss32,#u6)
+r1:0|=asr(r1:0,#0x0)
+//CHECK: 8240c080
+
+//S2_lsr_i_p_or
+//Rxx32|=lsr(Rss32,#u6)
+r1:0|=lsr(r1:0,#0x0)
+//CHECK: 8240c0a0
+
+//S2_asl_i_p_or
+//Rxx32|=asl(Rss32,#u6)
+r1:0|=asl(r1:0,#0x0)
+//CHECK: 8240c0c0
+
+//S6_rol_i_p_or
+//Rxx32|=rol(Rss32,#u6)
+r1:0|=rol(r1:0,#0x0)
+//CHECK: 8240c0e0
+
+//S2_asl_i_r_sat
+//Rd32=asl(Rs32,#u5):sat
+r2=asl(r0,#0x0):sat
+//CHECK: 8c40c042
+
+//S2_asr_i_r_rnd
+//Rd32=asr(Rs32,#u5):rnd
+r2=asr(r0,#0x0):rnd
+//CHECK: 8c40c002
+
+//S2_asr_i_p_rnd
+//Rdd32=asr(Rss32,#u6):rnd
+r3:2=asr(r1:0,#0x0):rnd
+//CHECK: 80c0c0e2
+
+//S4_lsli
+//Rd32=lsl(#s6,Rt32)
+r2=lsl(#0x0,r0)
+//CHECK: c680c0c2
+
+//S2_addasl_rrri
+//Rd32=addasl(Rt32,Rs32,#u3)
+r2=addasl(r0,r0,#0x0)
+//CHECK: c400c002
+
+//S4_andi_asl_ri
+//Rx32=and(#u8,asl(Rx32,#U5))
+r6=and(#0x0,asl(r6,#0x0))
+//CHECK: de06c000
+
+//S4_ori_asl_ri
+//Rx32=or(#u8,asl(Rx32,#U5))
+r6=or(#0x0,asl(r6,#0x0))
+//CHECK: de06c002
+
+//S4_addi_asl_ri
+//Rx32=add(#u8,asl(Rx32,#U5))
+r6=add(#0x0,asl(r6,#0x0))
+//CHECK: de06c004
+
+//S4_subi_asl_ri
+//Rx32=sub(#u8,asl(Rx32,#U5))
+r6=sub(#0x0,asl(r6,#0x0))
+//CHECK: de06c006
+
+//S4_andi_lsr_ri
+//Rx32=and(#u8,lsr(Rx32,#U5))
+r6=and(#0x0,lsr(r6,#0x0))
+//CHECK: de06c010
+
+//S4_ori_lsr_ri
+//Rx32=or(#u8,lsr(Rx32,#U5))
+r6=or(#0x0,lsr(r6,#0x0))
+//CHECK: de06c012
+
+//S4_addi_lsr_ri
+//Rx32=add(#u8,lsr(Rx32,#U5))
+r6=add(#0x0,lsr(r6,#0x0))
+//CHECK: de06c014
+
+//S4_subi_lsr_ri
+//Rx32=sub(#u8,lsr(Rx32,#U5))
+r6=sub(#0x0,lsr(r6,#0x0))
+//CHECK: de06c016
+
+//S2_valignib
+//Rdd32=valignb(Rtt32,Rss32,#u3)
+r3:2=valignb(r1:0,r1:0,#0x0)
+//CHECK: c000c002
+
+//S2_valignrb
+//Rdd32=valignb(Rtt32,Rss32,Pu4)
+r3:2=valignb(r1:0,r1:0,p0)
+//CHECK: c200c002
+
+//S2_vspliceib
+//Rdd32=vspliceb(Rss32,Rtt32,#u3)
+r3:2=vspliceb(r1:0,r1:0,#0x0)
+//CHECK: c080c002
+
+//S2_vsplicerb
+//Rdd32=vspliceb(Rss32,Rtt32,Pu4)
+r3:2=vspliceb(r1:0,r1:0,p0)
+//CHECK: c280c002
+
+//S2_vsplatrh
+//Rdd32=vsplath(Rs32)
+r3:2=vsplath(r0)
+//CHECK: 8440c042
+
+//S2_vsplatrb
+//Rd32=vsplatb(Rs32)
+r2=vsplatb(r0)
+//CHECK: 8c40c0e2
+
+//S6_vsplatrbp
+//Rdd32=vsplatb(Rs32)
+r3:2=vsplatb(r0)
+//CHECK: 8440c082
+
+//S2_insert
+//Rx32=insert(Rs32,#u5,#U5)
+r6=insert(r0,#0x0,#0x0)
+//CHECK: 8f00c006
+
+//S2_tableidxb
+//Rx32=tableidxb(Rs32,#u4,#S6):raw
+r6=tableidxb(r0,#0x0,#0x0):raw
+//CHECK: 8700c006
+
+//S2_tableidxh
+//Rx32=tableidxh(Rs32,#u4,#S6):raw
+r6=tableidxh(r0,#0x0,#0x0):raw
+//CHECK: 8740c006
+
+//S2_tableidxw
+//Rx32=tableidxw(Rs32,#u4,#S6):raw
+r6=tableidxw(r0,#0x0,#0x0):raw
+//CHECK: 8780c006
+
+//S2_tableidxd
+//Rx32=tableidxd(Rs32,#u4,#S6):raw
+r6=tableidxd(r0,#0x0,#0x0):raw
+//CHECK: 87c0c006
+
+//A4_bitspliti
+//Rdd32=bitsplit(Rs32,#u5)
+r3:2=bitsplit(r0,#0x0)
+//CHECK: 88c0c082
+
+//A4_bitsplit
+//Rdd32=bitsplit(Rs32,Rt32)
+r3:2=bitsplit(r0,r0)
+//CHECK: d420c002
+
+//S4_extract
+//Rd32=extract(Rs32,#u5,#U5)
+r2=extract(r0,#0x0,#0x0)
+//CHECK: 8d80c002
+
+//S2_extractu
+//Rd32=extractu(Rs32,#u5,#U5)
+r2=extractu(r0,#0x0,#0x0)
+//CHECK: 8d00c002
+
+//S2_insertp
+//Rxx32=insert(Rss32,#u6,#U6)
+r1:0=insert(r1:0,#0x0,#0x0)
+//CHECK: 8300c000
+
+//S4_extractp
+//Rdd32=extract(Rss32,#u6,#U6)
+r3:2=extract(r1:0,#0x0,#0x0)
+//CHECK: 8a00c002
+
+//S2_extractup
+//Rdd32=extractu(Rss32,#u6,#U6)
+r3:2=extractu(r1:0,#0x0,#0x0)
+//CHECK: 8100c002
+
+//S2_mask
+//Rd32=mask(#u5,#U5)
+r2=mask(#0x0,#0x0)
+//CHECK: 8d00e002
+
+//S2_insert_rp
+//Rx32=insert(Rs32,Rtt32)
+r6=insert(r0,r1:0)
+//CHECK: c800c006
+
+//S4_extract_rp
+//Rd32=extract(Rs32,Rtt32)
+r2=extract(r0,r1:0)
+//CHECK: c900c042
+
+//S2_extractu_rp
+//Rd32=extractu(Rs32,Rtt32)
+r2=extractu(r0,r1:0)
+//CHECK: c900c002
+
+//S2_insertp_rp
+//Rxx32=insert(Rss32,Rtt32)
+r1:0=insert(r1:0,r1:0)
+//CHECK: ca00c000
+
+//S4_extractp_rp
+//Rdd32=extract(Rss32,Rtt32)
+r3:2=extract(r1:0,r1:0)
+//CHECK: c1c0c082
+
+//S2_extractup_rp
+//Rdd32=extractu(Rss32,Rtt32)
+r3:2=extractu(r1:0,r1:0)
+//CHECK: c100c002
+
+//S2_tstbit_i
+//Pd4=tstbit(Rs32,#u5)
+p0=tstbit(r0,#0x0)
+//CHECK: 8500c000
+
+//S4_ntstbit_i
+//Pd4=!tstbit(Rs32,#u5)
+p0=!tstbit(r0,#0x0)
+//CHECK: 8520c000
+
+//S2_setbit_i
+//Rd32=setbit(Rs32,#u5)
+r2=setbit(r0,#0x0)
+//CHECK: 8cc0c002
+
+//S2_togglebit_i
+//Rd32=togglebit(Rs32,#u5)
+r2=togglebit(r0,#0x0)
+//CHECK: 8cc0c042
+
+//S2_clrbit_i
+//Rd32=clrbit(Rs32,#u5)
+r2=clrbit(r0,#0x0)
+//CHECK: 8cc0c022
+
+//S2_tstbit_r
+//Pd4=tstbit(Rs32,Rt32)
+p0=tstbit(r0,r0)
+//CHECK: c700c000
+
+//S4_ntstbit_r
+//Pd4=!tstbit(Rs32,Rt32)
+p0=!tstbit(r0,r0)
+//CHECK: c720c000
+
+//S2_setbit_r
+//Rd32=setbit(Rs32,Rt32)
+r2=setbit(r0,r0)
+//CHECK: c680c002
+
+//S2_togglebit_r
+//Rd32=togglebit(Rs32,Rt32)
+r2=togglebit(r0,r0)
+//CHECK: c680c082
+
+//S2_clrbit_r
+//Rd32=clrbit(Rs32,Rt32)
+r2=clrbit(r0,r0)
+//CHECK: c680c042
+
+//S2_asr_i_vh
+//Rdd32=vasrh(Rss32,#u4)
+r3:2=vasrh(r1:0,#0x0)
+//CHECK: 8080c002
+
+//S2_lsr_i_vh
+//Rdd32=vlsrh(Rss32,#u4)
+r3:2=vlsrh(r1:0,#0x0)
+//CHECK: 8080c022
+
+//S2_asl_i_vh
+//Rdd32=vaslh(Rss32,#u4)
+r3:2=vaslh(r1:0,#0x0)
+//CHECK: 8080c042
+
+//S2_asr_r_vh
+//Rdd32=vasrh(Rss32,Rt32)
+r3:2=vasrh(r1:0,r0)
+//CHECK: c340c002
+
+//S5_asrhub_rnd_sat
+//Rd32=vasrhub(Rss32,#u4):raw
+r2=vasrhub(r1:0,#0x0):raw
+//CHECK: 8860c082
+
+//S5_asrhub_sat
+//Rd32=vasrhub(Rss32,#u4):sat
+r2=vasrhub(r1:0,#0x0):sat
+//CHECK: 8860c0a2
+
+//S5_vasrhrnd
+//Rdd32=vasrh(Rss32,#u4):raw
+r3:2=vasrh(r1:0,#0x0):raw
+//CHECK: 8020c002
+
+//S2_asl_r_vh
+//Rdd32=vaslh(Rss32,Rt32)
+r3:2=vaslh(r1:0,r0)
+//CHECK: c340c082
+
+//S2_lsr_r_vh
+//Rdd32=vlsrh(Rss32,Rt32)
+r3:2=vlsrh(r1:0,r0)
+//CHECK: c340c042
+
+//S2_lsl_r_vh
+//Rdd32=vlslh(Rss32,Rt32)
+r3:2=vlslh(r1:0,r0)
+//CHECK: c340c0c2
+
+//S2_asr_i_vw
+//Rdd32=vasrw(Rss32,#u5)
+r3:2=vasrw(r1:0,#0x0)
+//CHECK: 8040c002
+
+//S2_asr_i_svw_trun
+//Rd32=vasrw(Rss32,#u5)
+r2=vasrw(r1:0,#0x0)
+//CHECK: 88c0c042
+
+//S2_asr_r_svw_trun
+//Rd32=vasrw(Rss32,Rt32)
+r2=vasrw(r1:0,r0)
+//CHECK: c500c042
+
+//S2_lsr_i_vw
+//Rdd32=vlsrw(Rss32,#u5)
+r3:2=vlsrw(r1:0,#0x0)
+//CHECK: 8040c022
+
+//S2_asl_i_vw
+//Rdd32=vaslw(Rss32,#u5)
+r3:2=vaslw(r1:0,#0x0)
+//CHECK: 8040c042
+
+//S2_asr_r_vw
+//Rdd32=vasrw(Rss32,Rt32)
+r3:2=vasrw(r1:0,r0)
+//CHECK: c300c002
+
+//S2_asl_r_vw
+//Rdd32=vaslw(Rss32,Rt32)
+r3:2=vaslw(r1:0,r0)
+//CHECK: c300c082
+
+//S2_lsr_r_vw
+//Rdd32=vlsrw(Rss32,Rt32)
+r3:2=vlsrw(r1:0,r0)
+//CHECK: c300c042
+
+//S2_lsl_r_vw
+//Rdd32=vlslw(Rss32,Rt32)
+r3:2=vlslw(r1:0,r0)
+//CHECK: c300c0c2
+
+//S2_vrndpackwh
+//Rd32=vrndwh(Rss32)
+r2=vrndwh(r1:0)
+//CHECK: 8880c082
+
+//S2_vrndpackwhs
+//Rd32=vrndwh(Rss32):sat
+r2=vrndwh(r1:0):sat
+//CHECK: 8880c0c2
+
+//S2_vsxtbh
+//Rdd32=vsxtbh(Rs32)
+r3:2=vsxtbh(r0)
+//CHECK: 8400c002
+
+//S2_vzxtbh
+//Rdd32=vzxtbh(Rs32)
+r3:2=vzxtbh(r0)
+//CHECK: 8400c042
+
+//S2_vsathub
+//Rd32=vsathub(Rss32)
+r2=vsathub(r1:0)
+//CHECK: 8800c002
+
+//S2_svsathub
+//Rd32=vsathub(Rs32)
+r2=vsathub(r0)
+//CHECK: 8c80c042
+
+//S2_svsathb
+//Rd32=vsathb(Rs32)
+r2=vsathb(r0)
+//CHECK: 8c80c002
+
+//S2_vsathb
+//Rd32=vsathb(Rss32)
+r2=vsathb(r1:0)
+//CHECK: 8800c0c2
+
+//S2_vtrunohb
+//Rd32=vtrunohb(Rss32)
+r2=vtrunohb(r1:0)
+//CHECK: 8880c002
+
+//S2_vtrunewh
+//Rdd32=vtrunewh(Rss32,Rtt32)
+r3:2=vtrunewh(r1:0,r1:0)
+//CHECK: c180c042
+
+//S2_vtrunowh
+//Rdd32=vtrunowh(Rss32,Rtt32)
+r3:2=vtrunowh(r1:0,r1:0)
+//CHECK: c180c082
+
+//S2_vtrunehb
+//Rd32=vtrunehb(Rss32)
+r2=vtrunehb(r1:0)
+//CHECK: 8880c042
+
+//S6_vtrunehb_ppp
+//Rdd32=vtrunehb(Rss32,Rtt32)
+r3:2=vtrunehb(r1:0,r1:0)
+//CHECK: c180c062
+
+//S6_vtrunohb_ppp
+//Rdd32=vtrunohb(Rss32,Rtt32)
+r3:2=vtrunohb(r1:0,r1:0)
+//CHECK: c180c0a2
+
+//S2_vsxthw
+//Rdd32=vsxthw(Rs32)
+r3:2=vsxthw(r0)
+//CHECK: 8400c082
+
+//S2_vzxthw
+//Rdd32=vzxthw(Rs32)
+r3:2=vzxthw(r0)
+//CHECK: 8400c0c2
+
+//S2_vsatwh
+//Rd32=vsatwh(Rss32)
+r2=vsatwh(r1:0)
+//CHECK: 8800c042
+
+//S2_vsatwuh
+//Rd32=vsatwuh(Rss32)
+r2=vsatwuh(r1:0)
+//CHECK: 8800c082
+
+//S2_packhl
+//Rdd32=packhl(Rs32,Rt32)
+r3:2=packhl(r0,r0)
+//CHECK: f580c002
+
+//A2_swiz
+//Rd32=swiz(Rs32)
+r2=swiz(r0)
+//CHECK: 8c80c0e2
+
+//S2_vsathub_nopack
+//Rdd32=vsathub(Rss32)
+r3:2=vsathub(r1:0)
+//CHECK: 8000c082
+
+//S2_vsathb_nopack
+//Rdd32=vsathb(Rss32)
+r3:2=vsathb(r1:0)
+//CHECK: 8000c0e2
+
+//S2_vsatwh_nopack
+//Rdd32=vsatwh(Rss32)
+r3:2=vsatwh(r1:0)
+//CHECK: 8000c0c2
+
+//S2_vsatwuh_nopack
+//Rdd32=vsatwuh(Rss32)
+r3:2=vsatwuh(r1:0)
+//CHECK: 8000c0a2
+
+//S2_shuffob
+//Rdd32=shuffob(Rtt32,Rss32)
+r3:2=shuffob(r1:0,r1:0)
+//CHECK: c100c082
+
+//S2_shuffeb
+//Rdd32=shuffeb(Rss32,Rtt32)
+r3:2=shuffeb(r1:0,r1:0)
+//CHECK: c100c042
+
+//S2_shuffoh
+//Rdd32=shuffoh(Rtt32,Rss32)
+r3:2=shuffoh(r1:0,r1:0)
+//CHECK: c180c002
+
+//S2_shuffeh
+//Rdd32=shuffeh(Rss32,Rtt32)
+r3:2=shuffeh(r1:0,r1:0)
+//CHECK: c100c0c2
+
+//S5_popcountp
+//Rd32=popcount(Rss32)
+r2=popcount(r1:0)
+//CHECK: 8860c062
+
+//S4_parity
+//Rd32=parity(Rs32,Rt32)
+r2=parity(r0,r0)
+//CHECK: d5e0c002
+
+//S2_parityp
+//Rd32=parity(Rss32,Rtt32)
+r2=parity(r1:0,r1:0)
+//CHECK: d000c002
+
+//S2_lfsp
+//Rdd32=lfs(Rss32,Rtt32)
+r3:2=lfs(r1:0,r1:0)
+//CHECK: c180c0c2
+
+//S2_clbnorm
+//Rd32=normamt(Rs32)
+r2=normamt(r0)
+//CHECK: 8c00c0e2
+
+//S4_clbaddi
+//Rd32=add(clb(Rs32),#s6)
+r2=add(clb(r0),#0x0)
+//CHECK: 8c20c002
+
+//S4_clbpnorm
+//Rd32=normamt(Rss32)
+r2=normamt(r1:0)
+//CHECK: 8860c002
+
+//S4_clbpaddi
+//Rd32=add(clb(Rss32),#s6)
+r2=add(clb(r1:0),#0x0)
+//CHECK: 8860c042
+
+//S2_cabacdecbin
+//Rdd32=decbin(Rss32,Rtt32)
+r3:2=decbin(r1:0,r1:0)
+//CHECK: c1c0c0c2
+
+//S2_clb
+//Rd32=clb(Rs32)
+r2=clb(r0)
+//CHECK: 8c00c082
+
+//S2_cl0
+//Rd32=cl0(Rs32)
+r2=cl0(r0)
+//CHECK: 8c00c0a2
+
+//S2_cl1
+//Rd32=cl1(Rs32)
+r2=cl1(r0)
+//CHECK: 8c00c0c2
+
+//S2_clbp
+//Rd32=clb(Rss32)
+r2=clb(r1:0)
+//CHECK: 8840c002
+
+//S2_cl0p
+//Rd32=cl0(Rss32)
+r2=cl0(r1:0)
+//CHECK: 8840c042
+
+//S2_cl1p
+//Rd32=cl1(Rss32)
+r2=cl1(r1:0)
+//CHECK: 8840c082
+
+//S2_brev
+//Rd32=brev(Rs32)
+r2=brev(r0)
+//CHECK: 8c40c0c2
+
+//S2_brevp
+//Rdd32=brev(Rss32)
+r3:2=brev(r1:0)
+//CHECK: 80c0c0c2
+
+//S2_ct0
+//Rd32=ct0(Rs32)
+r2=ct0(r0)
+//CHECK: 8c40c082
+
+//S2_ct1
+//Rd32=ct1(Rs32)
+r2=ct1(r0)
+//CHECK: 8c40c0a2
+
+//S2_ct0p
+//Rd32=ct0(Rss32)
+r2=ct0(r1:0)
+//CHECK: 88e0c042
+
+//S2_ct1p
+//Rd32=ct1(Rss32)
+r2=ct1(r1:0)
+//CHECK: 88e0c082
+
+//S2_interleave
+//Rdd32=interleave(Rss32)
+r3:2=interleave(r1:0)
+//CHECK: 80c0c0a2
+
+//S2_deinterleave
+//Rdd32=deinterleave(Rss32)
+r3:2=deinterleave(r1:0)
+//CHECK: 80c0c082
+
+//J2_trap0
+//trap0(#u8)
+trap0(#0x0)
+//CHECK: 5400c000
+
+//J2_trap1
+//trap1(Rx32,#u8)
+trap1(r6,#0x0)
+//CHECK: 5486c000
+
+//J2_pause
+//pause(#u10)
+pause(#0x0)
+//CHECK: 5440c000
+
+//J2_unpause
+//unpause
+unpause
+//CHECK: 57e0d000
+
+//J2_rte
+//rte
+rte
+//CHECK: 57e0c000
+
+//Y2_swi
+//swi(Rs32)
+swi(r0)
+//CHECK: 6400c000
+
+//Y2_cswi
+//cswi(Rs32)
+cswi(r0)
+//CHECK: 6400c020
+
+//Y2_ciad
+//ciad(Rs32)
+ciad(r0)
+//CHECK: 6400c060
+
+//Y4_siad
+//siad(Rs32)
+siad(r0)
+//CHECK: 6480c060
+
+//Y2_iassignr
+//Rd32=iassignr(Rs32)
+r2=iassignr(r0)
+//CHECK: 6660c002
+
+//Y2_iassignw
+//iassignw(Rs32)
+iassignw(r0)
+//CHECK: 6400c040
+
+//Y2_getimask
+//Rd32=getimask(Rs32)
+r2=getimask(r0)
+//CHECK: 6600c002
+
+//Y2_setimask
+//setimask(Pt4,Rs32)
+setimask(p0,r0)
+//CHECK: 6480c000
+
+//Y2_tlbw
+//tlbw(Rss32,Rt32)
+tlbw(r1:0,r0)
+//CHECK: 6c00c000
+
+//Y5_ctlbw
+//Rd32=ctlbw(Rss32,Rt32)
+r2=ctlbw(r1:0,r0)
+//CHECK: 6cc0c002
+
+//Y5_tlboc
+//Rd32=tlboc(Rss32)
+r2=tlboc(r1:0)
+//CHECK: 6ce0c002
+
+//Y2_tlbr
+//Rdd32=tlbr(Rs32)
+r3:2=tlbr(r0)
+//CHECK: 6c40c002
+
+//Y2_tlbp
+//Rd32=tlbp(Rs32)
+r2=tlbp(r0)
+//CHECK: 6c80c002
+
+//Y2_tlbpp
+//Rd32=tlbp(Rss32)
+r2=tlbp(r1:0)
+//CHECK: 6c60c002
+
+//Y5_tlbasidi
+//tlbinvasid(Rs32)
+tlbinvasid(r0)
+//CHECK: 6ca0c000
+
+//Y2_tlblock
+//tlblock
+tlblock
+//CHECK: 6c20c020
+
+//Y2_tlbunlock
+//tlbunlock
+tlbunlock
+//CHECK: 6c20c040
+
+//Y2_k0lock
+//k0lock
+k0lock
+//CHECK: 6c20c060
+
+//Y2_k0unlock
+//k0unlock
+k0unlock
+//CHECK: 6c20c080
+
+//Y2_crswap0
+//crswap(Rx32,sgp0)
+crswap(r6,sgp0)
+//CHECK: 6506c000
+
+//Y4_crswap1
+//crswap(Rx32,sgp1)
+crswap(r6,sgp1)
+//CHECK: 6526c000
+
+//Y4_crswap10
+//crswap(Rxx32,sgp1:0)
+crswap(r1:0,sgp1:0)
+//CHECK: 6d80c000
+
+//Y2_tfrscrr
+//Rd32=Ss128
+r2=s0
+//CHECK: 6e80c002
+
+//Y2_tfrsrcr
+//Sd128=Rs32
+s0=r0
+//CHECK: 6700c000
+
+//Y4_tfrscpp
+//Rdd32=Sss128
+r3:2=s1:0
+//CHECK: 6f00c002
+
+//Y4_tfrspcp
+//Sdd128=Rss32
+s1:0=r1:0
+//CHECK: 6d00c000
+
+//G4_tfrgcrr
+//Rd32=Gs32
+r2=g0
+//CHECK: 6a20c002
+
+//G4_tfrgrcr
+//Gd32=Rs32
+g0=r0
+//CHECK: 6200c000
+
+//G4_tfrgcpp
+//Rdd32=Gss32
+r3:2=g1:0
+//CHECK: 6820c002
+
+//G4_tfrgpcp
+//Gdd32=Rss32
+g1:0=r1:0
+//CHECK: 6300c000
+
+//Y2_setprio
+//setprio(Pt4,Rs32)
+setprio(p0,r0)
+//CHECK: 6480c020
+
+//Y6_diag
+//diag(Rs32)
+diag(r0)
+//CHECK: 6240c020
+
+//Y6_diag0
+//diag0(Rss32,Rtt32)
+diag0(r1:0,r1:0)
+//CHECK: 6240c040
+
+//Y6_diag1
+//diag1(Rss32,Rtt32)
+diag1(r1:0,r1:0)
+//CHECK: 6240c060
+
+//Y4_trace
+//trace(Rs32)
+trace(r0)
+//CHECK: 6240c000
+
+//Y2_stop
+//stop(Rs32)
+stop(r0)
+//CHECK: 6460c000
+
+//Y4_nmi
+//nmi(Rs32)
+nmi(r0)
+//CHECK: 6460c040
+
+//Y2_start
+//start(Rs32)
+start(r0)
+//CHECK: 6460c020
+
+//Y2_wait
+//wait(Rs32)
+wait(r0)
+//CHECK: 6440c000
+
+//Y2_resume
+//resume(Rs32)
+resume(r0)
+//CHECK: 6440c020
+
+//Y2_break
+//brkpt
+brkpt
+//CHECK: 6c20c000
+
+//Y2_ictagr
+//Rd32=ictagr(Rs32)
+r2=ictagr(r0)
+//CHECK: 55e0c002
+
+//Y2_ictagw
+//ictagw(Rs32,Rt32)
+ictagw(r0,r0)
+//CHECK: 55c0c000
+
+//Y2_icdataw
+//icdataw(Rs32,Rt32)
+icdataw(r0,r0)
+//CHECK: 55c0e000
+
+//Y2_icdatar
+//Rd32=icdatar(Rs32)
+r2=icdatar(r0)
+//CHECK: 55a0c002
+
+//Y2_icinva
+//icinva(Rs32)
+icinva(r0)
+//CHECK: 56c0c000
+
+//Y2_icinvidx
+//icinvidx(Rs32)
+icinvidx(r0)
+//CHECK: 56c0c800
+
+//Y2_ickill
+//ickill
+ickill
+//CHECK: 56c0d000
+
+//Y2_isync
+//isync
+isync
+//CHECK: 57c0c002
+
+//Y2_barrier
+//barrier
+barrier
+//CHECK: a800c000
+
+//Y2_syncht
+//syncht
+syncht
+//CHECK: a840c000
+
+//Y2_dcfetchbo_nt
+//dcfetch(Rs32+#u11:3):nt
+dcfetch(r0+#0x0):nt
+//CHECK: 9400e000
+
+//Y2_dcfetchbo
+//dcfetch(Rs32+#u11:3)
+dcfetch(r0+#0x0)
+//CHECK: 9400c000
+
+//Y2_dckill
+//dckill
+dckill
+//CHECK: a200c000
+
+//Y2_dczeroa
+//dczeroa(Rs32)
+dczeroa(r0)
+//CHECK: a0c0c000
+
+//Y2_dczeroa_nt
+//dczeroa(Rs32):nt
+dczeroa(r0):nt
+//CHECK: a0c0e000
+
+//Y2_dccleana
+//dccleana(Rs32)
+dccleana(r0)
+//CHECK: a000c000
+
+//Y2_dccleanidx
+//dccleanidx(Rs32)
+dccleanidx(r0)
+//CHECK: a220c000
+
+//Y2_dccleaninva
+//dccleaninva(Rs32)
+dccleaninva(r0)
+//CHECK: a040c000
+
+//Y2_dccleaninvidx
+//dccleaninvidx(Rs32)
+dccleaninvidx(r0)
+//CHECK: a260c000
+
+//Y2_dcinva
+//dcinva(Rs32)
+dcinva(r0)
+//CHECK: a020c000
+
+//Y2_dcinvidx
+//dcinvidx(Rs32)
+dcinvidx(r0)
+//CHECK: a240c000
+
+//Y2_dctagr
+//Rd32=dctagr(Rs32)
+r2=dctagr(r0)
+//CHECK: a420c002
+
+//Y2_dctagw
+//dctagw(Rs32,Rt32)
+dctagw(r0,r0)
+//CHECK: a400c000
+
+//Y2_l2kill
+//l2kill
+l2kill
+//CHECK: a820c000
+
+//Y4_l2tagw
+//l2tagw(Rs32,Rt32)
+l2tagw(r0,r0)
+//CHECK: a440c000
+
+//Y4_l2tagr
+//Rd32=l2tagr(Rs32)
+r2=l2tagr(r0)
+//CHECK: a460c002
+
+//Y2_l2cleaninvidx
+//l2cleaninvidx(Rs32)
+l2cleaninvidx(r0)
+//CHECK: a860c000
+
+//Y5_l2cleanidx
+//l2cleanidx(Rs32)
+l2cleanidx(r0)
+//CHECK: a620c000
+
+//Y5_l2invidx
+//l2invidx(Rs32)
+l2invidx(r0)
+//CHECK: a640c000
+
+//Y4_l2fetch
+//l2fetch(Rs32,Rt32)
+l2fetch(r0,r0)
+//CHECK: a600c000
+
+//Y6_dmstart
+//dmstart(Rs32)
+dmstart(r0)
+//CHECK: a600c020
+
+//Y6_dmlink
+//dmlink(Rs32,Rt32)
+dmlink(r0,r0)
+//CHECK: a600c040
+
+//Y6_dmpoll
+//Rd32=dmpoll
+r2=dmpoll
+//CHECK: a800c042
+
+//Y6_dmwait
+//Rd32=dmwait
+r2=dmwait
+//CHECK: a800c022
+
+//Y6_dmsyncht
+//Rd32=dmsyncht
+r2=dmsyncht
+//CHECK: a800c0e2
+
+//Y6_dmtlbsynch
+//Rd32=dmtlbsynch
+r2=dmtlbsynch
+//CHECK: a800c1e2
+
+//Y6_dmcfgrd
+//Rd32=dmcfgrd(Rs32)
+r2=dmcfgrd(r0)
+//CHECK: a800c0a2
+
+//Y6_dmcfgwr
+//dmcfgwr(Rs32,Rt32)
+dmcfgwr(r0,r0)
+//CHECK: a800c0c0
+
+//Y6_dmpause
+//Rd32=dmpause
+r2=dmpause
+//CHECK: a800c062
+
+//Y6_dmresume
+//dmresume(Rs32)
+dmresume(r0)
+//CHECK: a600c080
+
+//Y5_l2fetch
+//l2fetch(Rs32,Rtt32)
+l2fetch(r0,r1:0)
+//CHECK: a680c000
+
+//Y5_l2locka
+//Pd4=l2locka(Rs32)
+p0=l2locka(r0)
+//CHECK: a0e0e000
+
+//Y5_l2unlocka
+//l2unlocka(Rs32)
+l2unlocka(r0)
+//CHECK: a660c000
+
+//Y5_l2gunlock
+//l2gunlock
+l2gunlock
+//CHECK: a820c800
+
+//Y5_l2gclean
+//l2gclean
+l2gclean
+//CHECK: a820d000
+
+//Y5_l2gcleaninv
+//l2gcleaninv
+l2gcleaninv
+//CHECK: a820d800
+
+//Y6_l2gcleanpa
+//l2gclean(Rtt32)
+l2gclean(r1:0)
+//CHECK: a6a0c000
+
+//Y6_l2gcleaninvpa
+//l2gcleaninv(Rtt32)
+l2gcleaninv(r1:0)
+//CHECK: a6c0c000
+
+//dep_A2_addsat
+//Rd32=add(Rs32,Rt32):sat:deprecated
+r2=add(r0,r0):sat:deprecated
+//CHECK: d580c002
+
+//dep_A2_subsat
+//Rd32=sub(Rt32,Rs32):sat:deprecated
+r2=sub(r0,r0):sat:deprecated
+//CHECK: d580c082
+
+//dep_S2_packhl
+//Rdd32=packhl(Rs32,Rt32):deprecated
+r3:2=packhl(r0,r0):deprecated
+//CHECK: d400c002
+
+//PS_loadrubabs
+//Rd32=memub(#u16:0)
+r2=memub(#0x0)
+//CHECK: 4920c002
+
+//PS_loadrbabs
+//Rd32=memb(#u16:0)
+r2=memb(#0x0)
+//CHECK: 4900c002
+
+//PS_loadruhabs
+//Rd32=memuh(#u16:1)
+r2=memuh(#0x0)
+//CHECK: 4960c002
+
+//PS_loadrhabs
+//Rd32=memh(#u16:1)
+r2=memh(#0x0)
+//CHECK: 4940c002
+
+//PS_loadriabs
+//Rd32=memw(#u16:2)
+r2=memw(#0x0)
+//CHECK: 4980c002
+
+//PS_loadrdabs
+//Rdd32=memd(#u16:3)
+r3:2=memd(#0x0)
+//CHECK: 49c0c002
+
+//PS_storerbabs
+//memb(#u16:0)=Rt32
+memb(#0x0)=r0
+//CHECK: 4800c000
+
+//PS_storerhabs
+//memh(#u16:1)=Rt32
+memh(#0x0)=r0
+//CHECK: 4840c000
+
+//PS_storerfabs
+//memh(#u16:1)=Rt32.h
+memh(#0x0)=r0.h
+//CHECK: 4860c000
+
+//PS_storeriabs
+//memw(#u16:2)=Rt32
+memw(#0x0)=r0
+//CHECK: 4880c000
+
+//PS_storerdabs
+//memd(#u16:3)=Rtt32
+memd(#0x0)=r1:0
+//CHECK: 48c0c000
+
+//PS_storerinewabs
+//memw(#u16:2)=Nt8.new
+{
+    r0=r1
+    memw(#0x0)=r0.new
+}
+//CHECK: 48a0d200
+
+//PS_storerbnewabs
+//memb(#u16:0)=Nt8.new
+{
+    r0=r1
+    memb(#0x0)=r0.new
+}
+//CHECK: 48a0c200
+
+//PS_storerhnewabs
+//memh(#u16:1)=Nt8.new
+{
+    r0=r1
+    memh(#0x0)=r0.new
+}
+//CHECK: 48a0ca00
diff --git a/llvm/test/MC/Hexagon/v81_arch.s b/llvm/test/MC/Hexagon/v81_arch.s
new file mode 100644
index 0000000000000..0cd5d6b25a824
--- /dev/null
+++ b/llvm/test/MC/Hexagon/v81_arch.s
@@ -0,0 +1,10 @@
+# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv81 -filetype=obj %s | llvm-objdump -d - | FileCheck %s
+# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv81 -mhvx -filetype=obj %s | llvm-objdump -d - | FileCheck %s
+
+r1=memw(r0)
+{ r0=r0
+  memw(r0)=r0.new }
+
+# CHECK: { r1 = memw(r0+#0x0) }
+# CHECK: { r0 = r0
+# CHECK:   memw(r0+#0x0) = r0.new }
diff --git a/llvm/test/MC/Hexagon/v81_hvx.s b/llvm/test/MC/Hexagon/v81_hvx.s
new file mode 100644
index 0000000000000..ed8ac7b579cad
--- /dev/null
+++ b/llvm/test/MC/Hexagon/v81_hvx.s
@@ -0,0 +1,3377 @@
+// WARNING: This test was auto-generated by HexagonTestWriter.py
+// RUN: llvm-mc --mattr=+hvxv81,+hvx-ieee-fp,+hvx-qfloat,+zreg --hexagon-add-build-attributes -triple=hexagon --mcpu=hexagonv81 -filetype=obj %s | \
+// RUN:   llvm-objdump -d - | FileCheck %s
+
+//V6_vL32b_pi
+//Vd32=vmem(Rx32++#s3)
+v2=vmem(r6++#0x0)
+//CHECK: 2906c002
+
+//V6_vL32b_ai
+//Vd32=vmem(Rt32+#s4)
+v2=vmem(r0+#0x0)
+//CHECK: 2800c002
+
+//V6_vL32b_ppu
+//Vd32=vmem(Rx32++Mu2)
+v2=vmem(r6++m0)
+//CHECK: 2b06c002
+
+//V6_vL32b_cur_pi
+//Vd32.cur=vmem(Rx32++#s3)
+v2.cur=vmem(r6++#0x0)
+//CHECK: 2906c022
+
+//V6_vL32b_cur_ai
+//Vd32.cur=vmem(Rt32+#s4)
+v2.cur=vmem(r0+#0x0)
+//CHECK: 2800c022
+
+//V6_vL32b_cur_ppu
+//Vd32.cur=vmem(Rx32++Mu2)
+v2.cur=vmem(r6++m0)
+//CHECK: 2b06c022
+
+//V6_vL32b_tmp_pi
+//Vd32.tmp=vmem(Rx32++#s3)
+v2.tmp=vmem(r6++#0x0)
+//CHECK: 2906c042
+
+//V6_vL32b_tmp_ai
+//Vd32.tmp=vmem(Rt32+#s4)
+v2.tmp=vmem(r0+#0x0)
+//CHECK: 2800c042
+
+//V6_vL32b_tmp_ppu
+//Vd32.tmp=vmem(Rx32++Mu2)
+v2.tmp=vmem(r6++m0)
+//CHECK: 2b06c042
+
+//V6_vL32b_pred_pi
+//if (Pv4) Vd32=vmem(Rx32++#s3)
+if (p0) v2=vmem(r6++#0x0)
+//CHECK: 2986c042
+
+//V6_vL32b_pred_ai
+//if (Pv4) Vd32=vmem(Rt32+#s4)
+if (p0) v2=vmem(r0+#0x0)
+//CHECK: 2880c042
+
+//V6_vL32b_pred_ppu
+//if (Pv4) Vd32=vmem(Rx32++Mu2)
+if (p0) v2=vmem(r6++m0)
+//CHECK: 2b86c042
+
+//V6_vL32b_npred_pi
+//if (!Pv4) Vd32=vmem(Rx32++#s3)
+if (!p0) v2=vmem(r6++#0x0)
+//CHECK: 2986c062
+
+//V6_vL32b_npred_ai
+//if (!Pv4) Vd32=vmem(Rt32+#s4)
+if (!p0) v2=vmem(r0+#0x0)
+//CHECK: 2880c062
+
+//V6_vL32b_npred_ppu
+//if (!Pv4) Vd32=vmem(Rx32++Mu2)
+if (!p0) v2=vmem(r6++m0)
+//CHECK: 2b86c062
+
+//V6_vL32b_cur_pred_pi
+//if (Pv4) Vd32.cur=vmem(Rx32++#s3)
+if (p0) v2.cur=vmem(r6++#0x0)
+//CHECK: 2986c082
+
+//V6_vL32b_cur_pred_ai
+//if (Pv4) Vd32.cur=vmem(Rt32+#s4)
+if (p0) v2.cur=vmem(r0+#0x0)
+//CHECK: 2880c082
+
+//V6_vL32b_cur_pred_ppu
+//if (Pv4) Vd32.cur=vmem(Rx32++Mu2)
+if (p0) v2.cur=vmem(r6++m0)
+//CHECK: 2b86c082
+
+//V6_vL32b_cur_npred_pi
+//if (!Pv4) Vd32.cur=vmem(Rx32++#s3)
+if (!p0) v2.cur=vmem(r6++#0x0)
+//CHECK: 2986c0a2
+
+//V6_vL32b_cur_npred_ai
+//if (!Pv4) Vd32.cur=vmem(Rt32+#s4)
+if (!p0) v2.cur=vmem(r0+#0x0)
+//CHECK: 2880c0a2
+
+//V6_vL32b_cur_npred_ppu
+//if (!Pv4) Vd32.cur=vmem(Rx32++Mu2)
+if (!p0) v2.cur=vmem(r6++m0)
+//CHECK: 2b86c0a2
+
+//V6_vL32b_tmp_pred_pi
+//if (Pv4) Vd32.tmp=vmem(Rx32++#s3)
+if (p0) v2.tmp=vmem(r6++#0x0)
+//CHECK: 2986c0c2
+
+//V6_vL32b_tmp_pred_ai
+//if (Pv4) Vd32.tmp=vmem(Rt32+#s4)
+if (p0) v2.tmp=vmem(r0+#0x0)
+//CHECK: 2880c0c2
+
+//V6_vL32b_tmp_pred_ppu
+//if (Pv4) Vd32.tmp=vmem(Rx32++Mu2)
+if (p0) v2.tmp=vmem(r6++m0)
+//CHECK: 2b86c0c2
+
+//V6_vL32b_tmp_npred_pi
+//if (!Pv4) Vd32.tmp=vmem(Rx32++#s3)
+if (!p0) v2.tmp=vmem(r6++#0x0)
+//CHECK: 2986c0e2
+
+//V6_vL32b_tmp_npred_ai
+//if (!Pv4) Vd32.tmp=vmem(Rt32+#s4)
+if (!p0) v2.tmp=vmem(r0+#0x0)
+//CHECK: 2880c0e2
+
+//V6_vL32b_tmp_npred_ppu
+//if (!Pv4) Vd32.tmp=vmem(Rx32++Mu2)
+if (!p0) v2.tmp=vmem(r6++m0)
+//CHECK: 2b86c0e2
+
+//V6_vS32b_pi
+//vmem(Rx32++#s3)=Vs32
+vmem(r6++#0x0)=v0
+//CHECK: 2926c000
+
+//V6_vS32b_ai
+//vmem(Rt32+#s4)=Vs32
+vmem(r0+#0x0)=v0
+//CHECK: 2820c000
+
+//V6_vS32b_ppu
+//vmem(Rx32++Mu2)=Vs32
+vmem(r6++m0)=v0
+//CHECK: 2b26c000
+
+//V6_vS32b_pred_pi
+//if (Pv4) vmem(Rx32++#s3)=Vs32
+if (p0) vmem(r6++#0x0)=v0
+//CHECK: 29a6c000
+
+//V6_vS32b_pred_ai
+//if (Pv4) vmem(Rt32+#s4)=Vs32
+if (p0) vmem(r0+#0x0)=v0
+//CHECK: 28a0c000
+
+//V6_vS32b_pred_ppu
+//if (Pv4) vmem(Rx32++Mu2)=Vs32
+if (p0) vmem(r6++m0)=v0
+//CHECK: 2ba6c000
+
+//V6_vS32b_npred_pi
+//if (!Pv4) vmem(Rx32++#s3)=Vs32
+if (!p0) vmem(r6++#0x0)=v0
+//CHECK: 29a6c020
+
+//V6_vS32b_npred_ai
+//if (!Pv4) vmem(Rt32+#s4)=Vs32
+if (!p0) vmem(r0+#0x0)=v0
+//CHECK: 28a0c020
+
+//V6_vS32b_npred_ppu
+//if (!Pv4) vmem(Rx32++Mu2)=Vs32
+if (!p0) vmem(r6++m0)=v0
+//CHECK: 2ba6c020
+
+//V6_vS32b_qpred_pi
+//if (Qv4) vmem(Rx32++#s3)=Vs32
+if (q0) vmem(r6++#0x0)=v0
+//CHECK: 2986c000
+
+//V6_vS32b_qpred_ai
+//if (Qv4) vmem(Rt32+#s4)=Vs32
+if (q0) vmem(r0+#0x0)=v0
+//CHECK: 2880c000
+
+//V6_vS32b_qpred_ppu
+//if (Qv4) vmem(Rx32++Mu2)=Vs32
+if (q0) vmem(r6++m0)=v0
+//CHECK: 2b86c000
+
+//V6_vS32b_nqpred_pi
+//if (!Qv4) vmem(Rx32++#s3)=Vs32
+if (!q0) vmem(r6++#0x0)=v0
+//CHECK: 2986c020
+
+//V6_vS32b_nqpred_ai
+//if (!Qv4) vmem(Rt32+#s4)=Vs32
+if (!q0) vmem(r0+#0x0)=v0
+//CHECK: 2880c020
+
+//V6_vS32b_nqpred_ppu
+//if (!Qv4) vmem(Rx32++Mu2)=Vs32
+if (!q0) vmem(r6++m0)=v0
+//CHECK: 2b86c020
+
+//V6_vL32Ub_pi
+//Vd32=vmemu(Rx32++#s3)
+v2=vmemu(r6++#0x0)
+//CHECK: 2906c0e2
+
+//V6_vL32Ub_ai
+//Vd32=vmemu(Rt32+#s4)
+v2=vmemu(r0+#0x0)
+//CHECK: 2800c0e2
+
+//V6_vL32Ub_ppu
+//Vd32=vmemu(Rx32++Mu2)
+v2=vmemu(r6++m0)
+//CHECK: 2b06c0e2
+
+//V6_vS32Ub_pi
+//vmemu(Rx32++#s3)=Vs32
+vmemu(r6++#0x0)=v0
+//CHECK: 2926c0e0
+
+//V6_vS32Ub_ai
+//vmemu(Rt32+#s4)=Vs32
+vmemu(r0+#0x0)=v0
+//CHECK: 2820c0e0
+
+//V6_vS32Ub_ppu
+//vmemu(Rx32++Mu2)=Vs32
+vmemu(r6++m0)=v0
+//CHECK: 2b26c0e0
+
+//V6_vS32Ub_pred_pi
+//if (Pv4) vmemu(Rx32++#s3)=Vs32
+if (p0) vmemu(r6++#0x0)=v0
+//CHECK: 29a6c0c0
+
+//V6_vS32Ub_pred_ai
+//if (Pv4) vmemu(Rt32+#s4)=Vs32
+if (p0) vmemu(r0+#0x0)=v0
+//CHECK: 28a0c0c0
+
+//V6_vS32Ub_pred_ppu
+//if (Pv4) vmemu(Rx32++Mu2)=Vs32
+if (p0) vmemu(r6++m0)=v0
+//CHECK: 2ba6c0c0
+
+//V6_vS32Ub_npred_pi
+//if (!Pv4) vmemu(Rx32++#s3)=Vs32
+if (!p0) vmemu(r6++#0x0)=v0
+//CHECK: 29a6c0e0
+
+//V6_vS32Ub_npred_ai
+//if (!Pv4) vmemu(Rt32+#s4)=Vs32
+if (!p0) vmemu(r0+#0x0)=v0
+//CHECK: 28a0c0e0
+
+//V6_vS32Ub_npred_ppu
+//if (!Pv4) vmemu(Rx32++Mu2)=Vs32
+if (!p0) vmemu(r6++m0)=v0
+//CHECK: 2ba6c0e0
+
+//V6_vS32b_new_pi
+//vmem(Rx32++#s3)=Os8.new
+{
+    v0=v1
+    vmem(r6++#0x0)=v0.new
+}
+//CHECK: 2926c022
+
+//V6_vS32b_new_ai
+//vmem(Rt32+#s4)=Os8.new
+{
+    v0=v1
+    vmem(r0+#0x0)=v0.new
+}
+//CHECK: 2820c022
+
+//V6_vS32b_new_ppu
+//vmem(Rx32++Mu2)=Os8.new
+{
+    v0=v1
+    vmem(r6++m0)=v0.new
+}
+//CHECK: 2b26c022
+
+//V6_vS32b_srls_pi
+//vmem(Rx32++#s3):scatter_release
+vmem(r6++#0x0):scatter_release
+//CHECK: 2926c028
+
+//V6_vS32b_srls_ai
+//vmem(Rt32+#s4):scatter_release
+vmem(r0+#0x0):scatter_release
+//CHECK: 2820c028
+
+//V6_vS32b_srls_ppu
+//vmem(Rx32++Mu2):scatter_release
+vmem(r6++m0):scatter_release
+//CHECK: 2b26c028
+
+//V6_vS32b_new_pred_pi
+//if (Pv4) vmem(Rx32++#s3)=Os8.new
+{
+    v0=v1
+    if (p0) vmem(r6++#0x0)=v0.new
+}
+//CHECK: 29a6c042
+
+//V6_vS32b_new_pred_ai
+//if (Pv4) vmem(Rt32+#s4)=Os8.new
+{
+    v0=v1
+    if (p0) vmem(r0+#0x0)=v0.new
+}
+//CHECK: 28a0c042
+
+//V6_vS32b_new_pred_ppu
+//if (Pv4) vmem(Rx32++Mu2)=Os8.new
+{
+    v0=v1
+    if (p0) vmem(r6++m0)=v0.new
+}
+//CHECK: 2ba6c042
+
+//V6_vS32b_new_npred_pi
+//if (!Pv4) vmem(Rx32++#s3)=Os8.new
+{
+    v0=v1
+    if (!p0) vmem(r6++#0x0)=v0.new
+}
+//CHECK: 29a6c06a
+
+//V6_vS32b_new_npred_ai
+//if (!Pv4) vmem(Rt32+#s4)=Os8.new
+{
+    v0=v1
+    if (!p0) vmem(r0+#0x0)=v0.new
+}
+//CHECK: 28a0c06a
+
+//V6_vS32b_new_npred_ppu
+//if (!Pv4) vmem(Rx32++Mu2)=Os8.new
+{
+    v0=v1
+    if (!p0) vmem(r6++m0)=v0.new
+}
+//CHECK: 2ba6c06a
+
+//V6_vS32b_nt_pi
+//vmem(Rx32++#s3):nt=Vs32
+vmem(r6++#0x0):nt=v0
+//CHECK: 2966c000
+
+//V6_vS32b_nt_ai
+//vmem(Rt32+#s4):nt=Vs32
+vmem(r0+#0x0):nt=v0
+//CHECK: 2860c000
+
+//V6_vS32b_nt_ppu
+//vmem(Rx32++Mu2):nt=Vs32
+vmem(r6++m0):nt=v0
+//CHECK: 2b66c000
+
+//V6_vS32b_nt_pred_pi
+//if (Pv4) vmem(Rx32++#s3):nt=Vs32
+if (p0) vmem(r6++#0x0):nt=v0
+//CHECK: 29e6c000
+
+//V6_vS32b_nt_pred_ai
+//if (Pv4) vmem(Rt32+#s4):nt=Vs32
+if (p0) vmem(r0+#0x0):nt=v0
+//CHECK: 28e0c000
+
+//V6_vS32b_nt_pred_ppu
+//if (Pv4) vmem(Rx32++Mu2):nt=Vs32
+if (p0) vmem(r6++m0):nt=v0
+//CHECK: 2be6c000
+
+//V6_vS32b_nt_npred_pi
+//if (!Pv4) vmem(Rx32++#s3):nt=Vs32
+if (!p0) vmem(r6++#0x0):nt=v0
+//CHECK: 29e6c020
+
+//V6_vS32b_nt_npred_ai
+//if (!Pv4) vmem(Rt32+#s4):nt=Vs32
+if (!p0) vmem(r0+#0x0):nt=v0
+//CHECK: 28e0c020
+
+//V6_vS32b_nt_npred_ppu
+//if (!Pv4) vmem(Rx32++Mu2):nt=Vs32
+if (!p0) vmem(r6++m0):nt=v0
+//CHECK: 2be6c020
+
+//V6_vS32b_nt_new_pi
+//vmem(Rx32++#s3):nt=Os8.new
+{
+    v0=v1
+    vmem(r6++#0x0):nt=v0.new
+}
+//CHECK: 2966c022
+
+//V6_vS32b_nt_new_ai
+//vmem(Rt32+#s4):nt=Os8.new
+{
+    v0=v1
+    vmem(r0+#0x0):nt=v0.new
+}
+//CHECK: 2860c022
+
+//V6_vS32b_nt_new_ppu
+//vmem(Rx32++Mu2):nt=Os8.new
+{
+    v0=v1
+    vmem(r6++m0):nt=v0.new
+}
+//CHECK: 2b66c022
+
+//V6_vS32b_nt_new_pred_pi
+//if (Pv4) vmem(Rx32++#s3):nt=Os8.new
+{
+    v0=v1
+    if (p0) vmem(r6++#0x0):nt=v0.new
+}
+//CHECK: 29e6c052
+
+//V6_vS32b_nt_new_pred_ai
+//if (Pv4) vmem(Rt32+#s4):nt=Os8.new
+{
+    v0=v1
+    if (p0) vmem(r0+#0x0):nt=v0.new
+}
+//CHECK: 28e0c052
+
+//V6_vS32b_nt_new_pred_ppu
+//if (Pv4) vmem(Rx32++Mu2):nt=Os8.new
+{
+    v0=v1
+    if (p0) vmem(r6++m0):nt=v0.new
+}
+//CHECK: 2be6c052
+
+//V6_vS32b_nt_new_npred_pi
+//if (!Pv4) vmem(Rx32++#s3):nt=Os8.new
+{
+    v0=v1
+    if (!p0) vmem(r6++#0x0):nt=v0.new
+}
+//CHECK: 29e6c07a
+
+//V6_vS32b_nt_new_npred_ai
+//if (!Pv4) vmem(Rt32+#s4):nt=Os8.new
+{
+    v0=v1
+    if (!p0) vmem(r0+#0x0):nt=v0.new
+}
+//CHECK: 28e0c07a
+
+//V6_vS32b_nt_new_npred_ppu
+//if (!Pv4) vmem(Rx32++Mu2):nt=Os8.new
+{
+    v0=v1
+    if (!p0) vmem(r6++m0):nt=v0.new
+}
+//CHECK: 2be6c07a
+
+//V6_vS32b_nt_qpred_pi
+//if (Qv4) vmem(Rx32++#s3):nt=Vs32
+if (q0) vmem(r6++#0x0):nt=v0
+//CHECK: 29c6c000
+
+//V6_vS32b_nt_qpred_ai
+//if (Qv4) vmem(Rt32+#s4):nt=Vs32
+if (q0) vmem(r0+#0x0):nt=v0
+//CHECK: 28c0c000
+
+//V6_vS32b_nt_qpred_ppu
+//if (Qv4) vmem(Rx32++Mu2):nt=Vs32
+if (q0) vmem(r6++m0):nt=v0
+//CHECK: 2bc6c000
+
+//V6_vS32b_nt_nqpred_pi
+//if (!Qv4) vmem(Rx32++#s3):nt=Vs32
+if (!q0) vmem(r6++#0x0):nt=v0
+//CHECK: 29c6c020
+
+//V6_vS32b_nt_nqpred_ai
+//if (!Qv4) vmem(Rt32+#s4):nt=Vs32
+if (!q0) vmem(r0+#0x0):nt=v0
+//CHECK: 28c0c020
+
+//V6_vS32b_nt_nqpred_ppu
+//if (!Qv4) vmem(Rx32++Mu2):nt=Vs32
+if (!q0) vmem(r6++m0):nt=v0
+//CHECK: 2bc6c020
+
+//V6_vL32b_nt_pi
+//Vd32=vmem(Rx32++#s3):nt
+v2=vmem(r6++#0x0):nt
+//CHECK: 2946c002
+
+//V6_vL32b_nt_ai
+//Vd32=vmem(Rt32+#s4):nt
+v2=vmem(r0+#0x0):nt
+//CHECK: 2840c002
+
+//V6_vL32b_nt_ppu
+//Vd32=vmem(Rx32++Mu2):nt
+v2=vmem(r6++m0):nt
+//CHECK: 2b46c002
+
+//V6_vL32b_nt_cur_pi
+//Vd32.cur=vmem(Rx32++#s3):nt
+v2.cur=vmem(r6++#0x0):nt
+//CHECK: 2946c022
+
+//V6_vL32b_nt_cur_ai
+//Vd32.cur=vmem(Rt32+#s4):nt
+v2.cur=vmem(r0+#0x0):nt
+//CHECK: 2840c022
+
+//V6_vL32b_nt_cur_ppu
+//Vd32.cur=vmem(Rx32++Mu2):nt
+v2.cur=vmem(r6++m0):nt
+//CHECK: 2b46c022
+
+//V6_vL32b_nt_tmp_pi
+//Vd32.tmp=vmem(Rx32++#s3):nt
+v2.tmp=vmem(r6++#0x0):nt
+//CHECK: 2946c042
+
+//V6_vL32b_nt_tmp_ai
+//Vd32.tmp=vmem(Rt32+#s4):nt
+v2.tmp=vmem(r0+#0x0):nt
+//CHECK: 2840c042
+
+//V6_vL32b_nt_tmp_ppu
+//Vd32.tmp=vmem(Rx32++Mu2):nt
+v2.tmp=vmem(r6++m0):nt
+//CHECK: 2b46c042
+
+//V6_vL32b_nt_pred_pi
+//if (Pv4) Vd32=vmem(Rx32++#s3):nt
+if (p0) v2=vmem(r6++#0x0):nt
+//CHECK: 29c6c042
+
+//V6_vL32b_nt_pred_ai
+//if (Pv4) Vd32=vmem(Rt32+#s4):nt
+if (p0) v2=vmem(r0+#0x0):nt
+//CHECK: 28c0c042
+
+//V6_vL32b_nt_pred_ppu
+//if (Pv4) Vd32=vmem(Rx32++Mu2):nt
+if (p0) v2=vmem(r6++m0):nt
+//CHECK: 2bc6c042
+
+//V6_vL32b_nt_npred_pi
+//if (!Pv4) Vd32=vmem(Rx32++#s3):nt
+if (!p0) v2=vmem(r6++#0x0):nt
+//CHECK: 29c6c062
+
+//V6_vL32b_nt_npred_ai
+//if (!Pv4) Vd32=vmem(Rt32+#s4):nt
+if (!p0) v2=vmem(r0+#0x0):nt
+//CHECK: 28c0c062
+
+//V6_vL32b_nt_npred_ppu
+//if (!Pv4) Vd32=vmem(Rx32++Mu2):nt
+if (!p0) v2=vmem(r6++m0):nt
+//CHECK: 2bc6c062
+
+//V6_vL32b_nt_cur_pred_pi
+//if (Pv4) Vd32.cur=vmem(Rx32++#s3):nt
+if (p0) v2.cur=vmem(r6++#0x0):nt
+//CHECK: 29c6c082
+
+//V6_vL32b_nt_cur_pred_ai
+//if (Pv4) Vd32.cur=vmem(Rt32+#s4):nt
+if (p0) v2.cur=vmem(r0+#0x0):nt
+//CHECK: 28c0c082
+
+//V6_vL32b_nt_cur_pred_ppu
+//if (Pv4) Vd32.cur=vmem(Rx32++Mu2):nt
+if (p0) v2.cur=vmem(r6++m0):nt
+//CHECK: 2bc6c082
+
+//V6_vL32b_nt_cur_npred_pi
+//if (!Pv4) Vd32.cur=vmem(Rx32++#s3):nt
+if (!p0) v2.cur=vmem(r6++#0x0):nt
+//CHECK: 29c6c0a2
+
+//V6_vL32b_nt_cur_npred_ai
+//if (!Pv4) Vd32.cur=vmem(Rt32+#s4):nt
+if (!p0) v2.cur=vmem(r0+#0x0):nt
+//CHECK: 28c0c0a2
+
+//V6_vL32b_nt_cur_npred_ppu
+//if (!Pv4) Vd32.cur=vmem(Rx32++Mu2):nt
+if (!p0) v2.cur=vmem(r6++m0):nt
+//CHECK: 2bc6c0a2
+
+//V6_vL32b_nt_tmp_pred_pi
+//if (Pv4) Vd32.tmp=vmem(Rx32++#s3):nt
+if (p0) v2.tmp=vmem(r6++#0x0):nt
+//CHECK: 29c6c0c2
+
+//V6_vL32b_nt_tmp_pred_ai
+//if (Pv4) Vd32.tmp=vmem(Rt32+#s4):nt
+if (p0) v2.tmp=vmem(r0+#0x0):nt
+//CHECK: 28c0c0c2
+
+//V6_vL32b_nt_tmp_pred_ppu
+//if (Pv4) Vd32.tmp=vmem(Rx32++Mu2):nt
+if (p0) v2.tmp=vmem(r6++m0):nt
+//CHECK: 2bc6c0c2
+
+//V6_vL32b_nt_tmp_npred_pi
+//if (!Pv4) Vd32.tmp=vmem(Rx32++#s3):nt
+if (!p0) v2.tmp=vmem(r6++#0x0):nt
+//CHECK: 29c6c0e2
+
+//V6_vL32b_nt_tmp_npred_ai
+//if (!Pv4) Vd32.tmp=vmem(Rt32+#s4):nt
+if (!p0) v2.tmp=vmem(r0+#0x0):nt
+//CHECK: 28c0c0e2
+
+//V6_vL32b_nt_tmp_npred_ppu
+//if (!Pv4) Vd32.tmp=vmem(Rx32++Mu2):nt
+if (!p0) v2.tmp=vmem(r6++m0):nt
+//CHECK: 2bc6c0e2
+
+//V6_valignb
+//Vd32=valign(Vu32,Vv32,Rt8)
+v2=valign(v0,v0,r0)
+//CHECK: 1b00c002
+
+//V6_vlalignb
+//Vd32=vlalign(Vu32,Vv32,Rt8)
+v2=vlalign(v0,v0,r0)
+//CHECK: 1b00c022
+
+//V6_valignbi
+//Vd32=valign(Vu32,Vv32,#u3)
+v2=valign(v0,v0,#0x0)
+//CHECK: 1e20e002
+
+//V6_vlalignbi
+//Vd32=vlalign(Vu32,Vv32,#u3)
+v2=vlalign(v0,v0,#0x0)
+//CHECK: 1e60e002
+
+//V6_valign4
+//Vd32=valign4(Vu32,Vv32,Rt8)
+v2=valign4(v0,v0,r0)
+//CHECK: 1800c0a2
+
+//V6_vror
+//Vd32=vror(Vu32,Rt32)
+v2=vror(v0,r0)
+//CHECK: 1960c022
+
+//V6_vunpackub
+//Vdd32.uh=vunpack(Vu32.ub)
+v1:0.uh=vunpack(v0.ub)
+//CHECK: 1e01c000
+
+//V6_vunpackb
+//Vdd32.h=vunpack(Vu32.b)
+v1:0.h=vunpack(v0.b)
+//CHECK: 1e01c040
+
+//V6_vunpackuh
+//Vdd32.uw=vunpack(Vu32.uh)
+v1:0.uw=vunpack(v0.uh)
+//CHECK: 1e01c020
+
+//V6_vunpackh
+//Vdd32.w=vunpack(Vu32.h)
+v1:0.w=vunpack(v0.h)
+//CHECK: 1e01c060
+
+//V6_vunpackob
+//Vxx32.h|=vunpacko(Vu32.b)
+v1:0.h|=vunpacko(v0.b)
+//CHECK: 1e00e000
+
+//V6_vunpackoh
+//Vxx32.w|=vunpacko(Vu32.h)
+v1:0.w|=vunpacko(v0.h)
+//CHECK: 1e00e020
+
+//V6_vpackeb
+//Vd32.b=vpacke(Vu32.h,Vv32.h)
+v2.b=vpacke(v0.h,v0.h)
+//CHECK: 1fc0c042
+
+//V6_vpackeh
+//Vd32.h=vpacke(Vu32.w,Vv32.w)
+v2.h=vpacke(v0.w,v0.w)
+//CHECK: 1fc0c062
+
+//V6_vpackob
+//Vd32.b=vpacko(Vu32.h,Vv32.h)
+v2.b=vpacko(v0.h,v0.h)
+//CHECK: 1fe0c022
+
+//V6_vpackoh
+//Vd32.h=vpacko(Vu32.w,Vv32.w)
+v2.h=vpacko(v0.w,v0.w)
+//CHECK: 1fe0c042
+
+//V6_vpackhub_sat
+//Vd32.ub=vpack(Vu32.h,Vv32.h):sat
+v2.ub=vpack(v0.h,v0.h):sat
+//CHECK: 1fc0c0a2
+
+//V6_vpackhb_sat
+//Vd32.b=vpack(Vu32.h,Vv32.h):sat
+v2.b=vpack(v0.h,v0.h):sat
+//CHECK: 1fc0c0c2
+
+//V6_vpackwuh_sat
+//Vd32.uh=vpack(Vu32.w,Vv32.w):sat
+v2.uh=vpack(v0.w,v0.w):sat
+//CHECK: 1fc0c0e2
+
+//V6_vpackwh_sat
+//Vd32.h=vpack(Vu32.w,Vv32.w):sat
+v2.h=vpack(v0.w,v0.w):sat
+//CHECK: 1fe0c002
+
+//V6_vzb
+//Vdd32.uh=vzxt(Vu32.ub)
+v1:0.uh=vzxt(v0.ub)
+//CHECK: 1e02c020
+
+//V6_vsb
+//Vdd32.h=vsxt(Vu32.b)
+v1:0.h=vsxt(v0.b)
+//CHECK: 1e02c060
+
+//V6_vzh
+//Vdd32.uw=vzxt(Vu32.uh)
+v1:0.uw=vzxt(v0.uh)
+//CHECK: 1e02c040
+
+//V6_vsh
+//Vdd32.w=vsxt(Vu32.h)
+v1:0.w=vsxt(v0.h)
+//CHECK: 1e02c080
+
+//V6_vdmpybus
+//Vd32.h=vdmpy(Vu32.ub, Rt32.b)
+v2.h=vdmpy(v0.ub, r0.b)
+//CHECK: 1900c0c2
+
+//V6_vdmpybus_acc
+//Vx32.h+=vdmpy(Vu32.ub, Rt32.b)
+v6.h+=vdmpy(v0.ub, r0.b)
+//CHECK: 1900e0c6
+
+//V6_vdmpybus_dv
+//Vdd32.h=vdmpy(Vuu32.ub, Rt32.b)
+v1:0.h=vdmpy(v1:0.ub, r0.b)
+//CHECK: 1900c0e0
+
+//V6_vdmpybus_dv_acc
+//Vxx32.h+=vdmpy(Vuu32.ub, Rt32.b)
+v1:0.h+=vdmpy(v1:0.ub, r0.b)
+//CHECK: 1900e0e0
+
+//V6_vdmpyhb
+//Vd32.w=vdmpy(Vu32.h,Rt32.b)
+v2.w=vdmpy(v0.h,r0.b)
+//CHECK: 1900c042
+
+//V6_vdmpyhb_acc
+//Vx32.w+=vdmpy(Vu32.h,Rt32.b)
+v6.w+=vdmpy(v0.h,r0.b)
+//CHECK: 1900e066
+
+//V6_vdmpyhb_dv
+//Vdd32.w=vdmpy(Vuu32.h,Rt32.b)
+v1:0.w=vdmpy(v1:0.h,r0.b)
+//CHECK: 1920c080
+
+//V6_vdmpyhb_dv_acc
+//Vxx32.w+=vdmpy(Vuu32.h,Rt32.b)
+v1:0.w+=vdmpy(v1:0.h,r0.b)
+//CHECK: 1920e080
+
+//V6_vdmpyhvsat
+//Vd32.w=vdmpy(Vu32.h,Vv32.h):sat
+v2.w=vdmpy(v0.h,v0.h):sat
+//CHECK: 1c00c062
+
+//V6_vdmpyhvsat_acc
+//Vx32.w+=vdmpy(Vu32.h,Vv32.h):sat
+v6.w+=vdmpy(v0.h,v0.h):sat
+//CHECK: 1c00e066
+
+//V6_vdmpyhsat
+//Vd32.w=vdmpy(Vu32.h,Rt32.h):sat
+v2.w=vdmpy(v0.h,r0.h):sat
+//CHECK: 1920c042
+
+//V6_vdmpyhsat_acc
+//Vx32.w+=vdmpy(Vu32.h,Rt32.h):sat
+v6.w+=vdmpy(v0.h,r0.h):sat
+//CHECK: 1920e066
+
+//V6_vdmpyhisat
+//Vd32.w=vdmpy(Vuu32.h,Rt32.h):sat
+v2.w=vdmpy(v1:0.h,r0.h):sat
+//CHECK: 1920c062
+
+//V6_vdmpyhisat_acc
+//Vx32.w+=vdmpy(Vuu32.h,Rt32.h):sat
+v6.w+=vdmpy(v1:0.h,r0.h):sat
+//CHECK: 1920e046
+
+//V6_vdmpyhsusat
+//Vd32.w=vdmpy(Vu32.h,Rt32.uh):sat
+v2.w=vdmpy(v0.h,r0.uh):sat
+//CHECK: 1920c002
+
+//V6_vdmpyhsusat_acc
+//Vx32.w+=vdmpy(Vu32.h,Rt32.uh):sat
+v6.w+=vdmpy(v0.h,r0.uh):sat
+//CHECK: 1920e006
+
+//V6_vdmpyhsuisat
+//Vd32.w=vdmpy(Vuu32.h,Rt32.uh,#1):sat
+v2.w=vdmpy(v1:0.h,r0.uh,#1):sat
+//CHECK: 1920c022
+
+//V6_vdmpyhsuisat_acc
+//Vx32.w+=vdmpy(Vuu32.h,Rt32.uh,#1):sat
+v6.w+=vdmpy(v1:0.h,r0.uh,#1):sat
+//CHECK: 1920e026
+
+//V6_vtmpyb
+//Vdd32.h=vtmpy(Vuu32.b,Rt32.b)
+v1:0.h=vtmpy(v1:0.b,r0.b)
+//CHECK: 1900c000
+
+//V6_vtmpyb_acc
+//Vxx32.h+=vtmpy(Vuu32.b,Rt32.b)
+v1:0.h+=vtmpy(v1:0.b,r0.b)
+//CHECK: 1900e000
+
+//V6_vtmpybus
+//Vdd32.h=vtmpy(Vuu32.ub,Rt32.b)
+v1:0.h=vtmpy(v1:0.ub,r0.b)
+//CHECK: 1900c020
+
+//V6_vtmpybus_acc
+//Vxx32.h+=vtmpy(Vuu32.ub,Rt32.b)
+v1:0.h+=vtmpy(v1:0.ub,r0.b)
+//CHECK: 1900e020
+
+//V6_vtmpyhb
+//Vdd32.w=vtmpy(Vuu32.h,Rt32.b)
+v1:0.w=vtmpy(v1:0.h,r0.b)
+//CHECK: 19a0c080
+
+//V6_vtmpyhb_acc
+//Vxx32.w+=vtmpy(Vuu32.h,Rt32.b)
+v1:0.w+=vtmpy(v1:0.h,r0.b)
+//CHECK: 1900e040
+
+//V6_vrmpyub
+//Vd32.uw=vrmpy(Vu32.ub,Rt32.ub)
+v2.uw=vrmpy(v0.ub,r0.ub)
+//CHECK: 1900c062
+
+//V6_vrmpyub_acc
+//Vx32.uw+=vrmpy(Vu32.ub,Rt32.ub)
+v6.uw+=vrmpy(v0.ub,r0.ub)
+//CHECK: 1900e086
+
+//V6_vrmpyubv
+//Vd32.uw=vrmpy(Vu32.ub,Vv32.ub)
+v2.uw=vrmpy(v0.ub,v0.ub)
+//CHECK: 1c00c002
+
+//V6_vrmpyubv_acc
+//Vx32.uw+=vrmpy(Vu32.ub,Vv32.ub)
+v6.uw+=vrmpy(v0.ub,v0.ub)
+//CHECK: 1c00e006
+
+//V6_vrmpybv
+//Vd32.w=vrmpy(Vu32.b,Vv32.b)
+v2.w=vrmpy(v0.b,v0.b)
+//CHECK: 1c00c022
+
+//V6_vrmpybv_acc
+//Vx32.w+=vrmpy(Vu32.b,Vv32.b)
+v6.w+=vrmpy(v0.b,v0.b)
+//CHECK: 1c00e026
+
+//V6_vrmpyubi
+//Vdd32.uw=vrmpy(Vuu32.ub,Rt32.ub,#u1)
+v1:0.uw=vrmpy(v1:0.ub,r0.ub,#0x0)
+//CHECK: 19a0c0c0
+
+//V6_vrmpyubi_acc
+//Vxx32.uw+=vrmpy(Vuu32.ub,Rt32.ub,#u1)
+v1:0.uw+=vrmpy(v1:0.ub,r0.ub,#0x0)
+//CHECK: 1960e0c0
+
+//V6_vrmpybus
+//Vd32.w=vrmpy(Vu32.ub,Rt32.b)
+v2.w=vrmpy(v0.ub,r0.b)
+//CHECK: 1900c082
+
+//V6_vrmpybus_acc
+//Vx32.w+=vrmpy(Vu32.ub,Rt32.b)
+v6.w+=vrmpy(v0.ub,r0.b)
+//CHECK: 1900e0a6
+
+//V6_vrmpybusi
+//Vdd32.w=vrmpy(Vuu32.ub,Rt32.b,#u1)
+v1:0.w=vrmpy(v1:0.ub,r0.b,#0x0)
+//CHECK: 1940c080
+
+//V6_vrmpybusi_acc
+//Vxx32.w+=vrmpy(Vuu32.ub,Rt32.b,#u1)
+v1:0.w+=vrmpy(v1:0.ub,r0.b,#0x0)
+//CHECK: 1940e080
+
+//V6_vrmpybusv
+//Vd32.w=vrmpy(Vu32.ub,Vv32.b)
+v2.w=vrmpy(v0.ub,v0.b)
+//CHECK: 1c00c042
+
+//V6_vrmpybusv_acc
+//Vx32.w+=vrmpy(Vu32.ub,Vv32.b)
+v6.w+=vrmpy(v0.ub,v0.b)
+//CHECK: 1c00e046
+
+//V6_vdsaduh
+//Vdd32.uw=vdsad(Vuu32.uh,Rt32.uh)
+v1:0.uw=vdsad(v1:0.uh,r0.uh)
+//CHECK: 1900c0a0
+
+//V6_vdsaduh_acc
+//Vxx32.uw+=vdsad(Vuu32.uh,Rt32.uh)
+v1:0.uw+=vdsad(v1:0.uh,r0.uh)
+//CHECK: 1960e000
+
+//V6_vrsadubi
+//Vdd32.uw=vrsad(Vuu32.ub,Rt32.ub,#u1)
+v1:0.uw=vrsad(v1:0.ub,r0.ub,#0x0)
+//CHECK: 1940c0c0
+
+//V6_vrsadubi_acc
+//Vxx32.uw+=vrsad(Vuu32.ub,Rt32.ub,#u1)
+v1:0.uw+=vrsad(v1:0.ub,r0.ub,#0x0)
+//CHECK: 1940e0c0
+
+//V6_vasrw
+//Vd32.w=vasr(Vu32.w,Rt32)
+v2.w=vasr(v0.w,r0)
+//CHECK: 1960c0a2
+
+//V6_vaslw
+//Vd32.w=vasl(Vu32.w,Rt32)
+v2.w=vasl(v0.w,r0)
+//CHECK: 1960c0e2
+
+//V6_vlsrw
+//Vd32.uw=vlsr(Vu32.uw,Rt32)
+v2.uw=vlsr(v0.uw,r0)
+//CHECK: 1980c022
+
+//V6_vasrwv
+//Vd32.w=vasr(Vu32.w,Vv32.w)
+v2.w=vasr(v0.w,v0.w)
+//CHECK: 1fa0c002
+
+//V6_vaslwv
+//Vd32.w=vasl(Vu32.w,Vv32.w)
+v2.w=vasl(v0.w,v0.w)
+//CHECK: 1fa0c082
+
+//V6_vlsrwv
+//Vd32.w=vlsr(Vu32.w,Vv32.w)
+v2.w=vlsr(v0.w,v0.w)
+//CHECK: 1fa0c022
+
+//V6_vasrh
+//Vd32.h=vasr(Vu32.h,Rt32)
+v2.h=vasr(v0.h,r0)
+//CHECK: 1960c0c2
+
+//V6_vaslh
+//Vd32.h=vasl(Vu32.h,Rt32)
+v2.h=vasl(v0.h,r0)
+//CHECK: 1980c002
+
+//V6_vlsrh
+//Vd32.uh=vlsr(Vu32.uh,Rt32)
+v2.uh=vlsr(v0.uh,r0)
+//CHECK: 1980c042
+
+//V6_vasrhv
+//Vd32.h=vasr(Vu32.h,Vv32.h)
+v2.h=vasr(v0.h,v0.h)
+//CHECK: 1fa0c062
+
+//V6_vaslhv
+//Vd32.h=vasl(Vu32.h,Vv32.h)
+v2.h=vasl(v0.h,v0.h)
+//CHECK: 1fa0c0a2
+
+//V6_vlsrhv
+//Vd32.h=vlsr(Vu32.h,Vv32.h)
+v2.h=vlsr(v0.h,v0.h)
+//CHECK: 1fa0c042
+
+//V6_vlsrb
+//Vd32.ub=vlsr(Vu32.ub,Rt32)
+v2.ub=vlsr(v0.ub,r0)
+//CHECK: 1980c062
+
+//V6_vrotr
+//Vd32.uw=vrotr(Vu32.uw,Vv32.uw)
+v2.uw=vrotr(v0.uw,v0.uw)
+//CHECK: 1a80e0e2
+
+//V6_vasr_into
+//Vxx32.w=vasrinto(Vu32.w,Vv32.w)
+v1:0.w=vasrinto(v0.w,v0.w)
+//CHECK: 1aa0e0e0
+
+//V6_vasruwuhrndsat
+//Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):rnd:sat
+v2.uh=vasr(v0.uw,v0.uw,r0):rnd:sat
+//CHECK: 1800c022
+
+//V6_vasruwuhsat
+//Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):sat
+v2.uh=vasr(v0.uw,v0.uw,r0):sat
+//CHECK: 1800e082
+
+//V6_vasruhubsat
+//Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):sat
+v2.ub=vasr(v0.uh,v0.uh,r0):sat
+//CHECK: 1800e0a2
+
+//V6_vasruhubrndsat
+//Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):rnd:sat
+v2.ub=vasr(v0.uh,v0.uh,r0):rnd:sat
+//CHECK: 1800c0e2
+
+//V6_vasrwh
+//Vd32.h=vasr(Vu32.w,Vv32.w,Rt8)
+v2.h=vasr(v0.w,v0.w,r0)
+//CHECK: 1b00c042
+
+//V6_vasrwhsat
+//Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):sat
+v2.h=vasr(v0.w,v0.w,r0):sat
+//CHECK: 1b00c062
+
+//V6_vasrwhrndsat
+//Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
+v2.h=vasr(v0.w,v0.w,r0):rnd:sat
+//CHECK: 1b00c082
+
+//V6_vasrwuhrndsat
+//Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
+v2.uh=vasr(v0.w,v0.w,r0):rnd:sat
+//CHECK: 1800c042
+
+//V6_vasrwuhsat
+//Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):sat
+v2.uh=vasr(v0.w,v0.w,r0):sat
+//CHECK: 1b00c0a2
+
+//V6_vasrhubsat
+//Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):sat
+v2.ub=vasr(v0.h,v0.h,r0):sat
+//CHECK: 1b00c0c2
+
+//V6_vasrhubrndsat
+//Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat
+v2.ub=vasr(v0.h,v0.h,r0):rnd:sat
+//CHECK: 1b00c0e2
+
+//V6_vasrhbsat
+//Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):sat
+v2.b=vasr(v0.h,v0.h,r0):sat
+//CHECK: 1800c002
+
+//V6_vasrhbrndsat
+//Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat
+v2.b=vasr(v0.h,v0.h,r0):rnd:sat
+//CHECK: 1b00e002
+
+//V6_vasrvwuhsat
+//Vd32.uh=vasr(Vuu32.w,Vv32.uh):sat
+v2.uh=vasr(v1:0.w,v0.uh):sat
+//CHECK: 1d00c002
+
+//V6_vasrvwuhrndsat
+//Vd32.uh=vasr(Vuu32.w,Vv32.uh):rnd:sat
+v2.uh=vasr(v1:0.w,v0.uh):rnd:sat
+//CHECK: 1d00c022
+
+//V6_vasrvuhubsat
+//Vd32.ub=vasr(Vuu32.uh,Vv32.ub):sat
+v2.ub=vasr(v1:0.uh,v0.ub):sat
+//CHECK: 1d00c042
+
+//V6_vasrvuhubrndsat
+//Vd32.ub=vasr(Vuu32.uh,Vv32.ub):rnd:sat
+v2.ub=vasr(v1:0.uh,v0.ub):rnd:sat
+//CHECK: 1d00c062
+
+//V6_vroundwh
+//Vd32.h=vround(Vu32.w,Vv32.w):sat
+v2.h=vround(v0.w,v0.w):sat
+//CHECK: 1f60c082
+
+//V6_vroundwuh
+//Vd32.uh=vround(Vu32.w,Vv32.w):sat
+v2.uh=vround(v0.w,v0.w):sat
+//CHECK: 1f60c0a2
+
+//V6_vrounduwuh
+//Vd32.uh=vround(Vu32.uw,Vv32.uw):sat
+v2.uh=vround(v0.uw,v0.uw):sat
+//CHECK: 1fe0c082
+
+//V6_vroundhb
+//Vd32.b=vround(Vu32.h,Vv32.h):sat
+v2.b=vround(v0.h,v0.h):sat
+//CHECK: 1f60c0c2
+
+//V6_vroundhub
+//Vd32.ub=vround(Vu32.h,Vv32.h):sat
+v2.ub=vround(v0.h,v0.h):sat
+//CHECK: 1f60c0e2
+
+//V6_vrounduhub
+//Vd32.ub=vround(Vu32.uh,Vv32.uh):sat
+v2.ub=vround(v0.uh,v0.uh):sat
+//CHECK: 1fe0c062
+
+//V6_vaslw_acc
+//Vx32.w+=vasl(Vu32.w,Rt32)
+v6.w+=vasl(v0.w,r0)
+//CHECK: 1960e046
+
+//V6_vasrw_acc
+//Vx32.w+=vasr(Vu32.w,Rt32)
+v6.w+=vasr(v0.w,r0)
+//CHECK: 1960e0a6
+
+//V6_vaslh_acc
+//Vx32.h+=vasl(Vu32.h,Rt32)
+v6.h+=vasl(v0.h,r0)
+//CHECK: 19a0e0a6
+
+//V6_vasrh_acc
+//Vx32.h+=vasr(Vu32.h,Rt32)
+v6.h+=vasr(v0.h,r0)
+//CHECK: 1980e0e6
+
+//V6_vaddb
+//Vd32.b=vadd(Vu32.b,Vv32.b)
+v2.b=vadd(v0.b,v0.b)
+//CHECK: 1fa0c0c2
+
+//V6_vsubb
+//Vd32.b=vsub(Vu32.b,Vv32.b)
+v2.b=vsub(v0.b,v0.b)
+//CHECK: 1c40c0a2
+
+//V6_vaddb_dv
+//Vdd32.b=vadd(Vuu32.b,Vvv32.b)
+v1:0.b=vadd(v1:0.b,v1:0.b)
+//CHECK: 1c60c080
+
+//V6_vsubb_dv
+//Vdd32.b=vsub(Vuu32.b,Vvv32.b)
+v1:0.b=vsub(v1:0.b,v1:0.b)
+//CHECK: 1c80c060
+
+//V6_vaddh
+//Vd32.h=vadd(Vu32.h,Vv32.h)
+v2.h=vadd(v0.h,v0.h)
+//CHECK: 1fa0c0e2
+
+//V6_vsubh
+//Vd32.h=vsub(Vu32.h,Vv32.h)
+v2.h=vsub(v0.h,v0.h)
+//CHECK: 1c40c0c2
+
+//V6_vaddh_dv
+//Vdd32.h=vadd(Vuu32.h,Vvv32.h)
+v1:0.h=vadd(v1:0.h,v1:0.h)
+//CHECK: 1c60c0a0
+
+//V6_vsubh_dv
+//Vdd32.h=vsub(Vuu32.h,Vvv32.h)
+v1:0.h=vsub(v1:0.h,v1:0.h)
+//CHECK: 1c80c080
+
+//V6_vaddw
+//Vd32.w=vadd(Vu32.w,Vv32.w)
+v2.w=vadd(v0.w,v0.w)
+//CHECK: 1c40c002
+
+//V6_vsubw
+//Vd32.w=vsub(Vu32.w,Vv32.w)
+v2.w=vsub(v0.w,v0.w)
+//CHECK: 1c40c0e2
+
+//V6_vaddw_dv
+//Vdd32.w=vadd(Vuu32.w,Vvv32.w)
+v1:0.w=vadd(v1:0.w,v1:0.w)
+//CHECK: 1c60c0c0
+
+//V6_vsubw_dv
+//Vdd32.w=vsub(Vuu32.w,Vvv32.w)
+v1:0.w=vsub(v1:0.w,v1:0.w)
+//CHECK: 1c80c0a0
+
+//V6_vaddubsat
+//Vd32.ub=vadd(Vu32.ub,Vv32.ub):sat
+v2.ub=vadd(v0.ub,v0.ub):sat
+//CHECK: 1c40c022
+
+//V6_vaddubsat_dv
+//Vdd32.ub=vadd(Vuu32.ub,Vvv32.ub):sat
+v1:0.ub=vadd(v1:0.ub,v1:0.ub):sat
+//CHECK: 1c60c0e0
+
+//V6_vsububsat
+//Vd32.ub=vsub(Vu32.ub,Vv32.ub):sat
+v2.ub=vsub(v0.ub,v0.ub):sat
+//CHECK: 1c60c002
+
+//V6_vsububsat_dv
+//Vdd32.ub=vsub(Vuu32.ub,Vvv32.ub):sat
+v1:0.ub=vsub(v1:0.ub,v1:0.ub):sat
+//CHECK: 1c80c0c0
+
+//V6_vadduhsat
+//Vd32.uh=vadd(Vu32.uh,Vv32.uh):sat
+v2.uh=vadd(v0.uh,v0.uh):sat
+//CHECK: 1c40c042
+
+//V6_vadduhsat_dv
+//Vdd32.uh=vadd(Vuu32.uh,Vvv32.uh):sat
+v1:0.uh=vadd(v1:0.uh,v1:0.uh):sat
+//CHECK: 1c80c000
+
+//V6_vsubuhsat
+//Vd32.uh=vsub(Vu32.uh,Vv32.uh):sat
+v2.uh=vsub(v0.uh,v0.uh):sat
+//CHECK: 1c60c022
+
+//V6_vsubuhsat_dv
+//Vdd32.uh=vsub(Vuu32.uh,Vvv32.uh):sat
+v1:0.uh=vsub(v1:0.uh,v1:0.uh):sat
+//CHECK: 1c80c0e0
+
+//V6_vadduwsat
+//Vd32.uw=vadd(Vu32.uw,Vv32.uw):sat
+v2.uw=vadd(v0.uw,v0.uw):sat
+//CHECK: 1f60c022
+
+//V6_vadduwsat_dv
+//Vdd32.uw=vadd(Vuu32.uw,Vvv32.uw):sat
+v1:0.uw=vadd(v1:0.uw,v1:0.uw):sat
+//CHECK: 1ea0c040
+
+//V6_vsubuwsat
+//Vd32.uw=vsub(Vu32.uw,Vv32.uw):sat
+v2.uw=vsub(v0.uw,v0.uw):sat
+//CHECK: 1fc0c082
+
+//V6_vsubuwsat_dv
+//Vdd32.uw=vsub(Vuu32.uw,Vvv32.uw):sat
+v1:0.uw=vsub(v1:0.uw,v1:0.uw):sat
+//CHECK: 1ea0c060
+
+//V6_vaddbsat
+//Vd32.b=vadd(Vu32.b,Vv32.b):sat
+v2.b=vadd(v0.b,v0.b):sat
+//CHECK: 1f00c002
+
+//V6_vaddbsat_dv
+//Vdd32.b=vadd(Vuu32.b,Vvv32.b):sat
+v1:0.b=vadd(v1:0.b,v1:0.b):sat
+//CHECK: 1ea0c000
+
+//V6_vsubbsat
+//Vd32.b=vsub(Vu32.b,Vv32.b):sat
+v2.b=vsub(v0.b,v0.b):sat
+//CHECK: 1f20c042
+
+//V6_vsubbsat_dv
+//Vdd32.b=vsub(Vuu32.b,Vvv32.b):sat
+v1:0.b=vsub(v1:0.b,v1:0.b):sat
+//CHECK: 1ea0c020
+
+//V6_vaddhsat
+//Vd32.h=vadd(Vu32.h,Vv32.h):sat
+v2.h=vadd(v0.h,v0.h):sat
+//CHECK: 1c40c062
+
+//V6_vaddhsat_dv
+//Vdd32.h=vadd(Vuu32.h,Vvv32.h):sat
+v1:0.h=vadd(v1:0.h,v1:0.h):sat
+//CHECK: 1c80c020
+
+//V6_vsubhsat
+//Vd32.h=vsub(Vu32.h,Vv32.h):sat
+v2.h=vsub(v0.h,v0.h):sat
+//CHECK: 1c60c042
+
+//V6_vsubhsat_dv
+//Vdd32.h=vsub(Vuu32.h,Vvv32.h):sat
+v1:0.h=vsub(v1:0.h,v1:0.h):sat
+//CHECK: 1ca0c000
+
+//V6_vaddwsat
+//Vd32.w=vadd(Vu32.w,Vv32.w):sat
+v2.w=vadd(v0.w,v0.w):sat
+//CHECK: 1c40c082
+
+//V6_vaddwsat_dv
+//Vdd32.w=vadd(Vuu32.w,Vvv32.w):sat
+v1:0.w=vadd(v1:0.w,v1:0.w):sat
+//CHECK: 1c80c040
+
+//V6_vsubwsat
+//Vd32.w=vsub(Vu32.w,Vv32.w):sat
+v2.w=vsub(v0.w,v0.w):sat
+//CHECK: 1c60c062
+
+//V6_vsubwsat_dv
+//Vdd32.w=vsub(Vuu32.w,Vvv32.w):sat
+v1:0.w=vsub(v1:0.w,v1:0.w):sat
+//CHECK: 1ca0c020
+
+//V6_vavgub
+//Vd32.ub=vavg(Vu32.ub,Vv32.ub)
+v2.ub=vavg(v0.ub,v0.ub)
+//CHECK: 1cc0c082
+
+//V6_vavgubrnd
+//Vd32.ub=vavg(Vu32.ub,Vv32.ub):rnd
+v2.ub=vavg(v0.ub,v0.ub):rnd
+//CHECK: 1ce0c062
+
+//V6_vavguh
+//Vd32.uh=vavg(Vu32.uh,Vv32.uh)
+v2.uh=vavg(v0.uh,v0.uh)
+//CHECK: 1cc0c0a2
+
+//V6_vavguhrnd
+//Vd32.uh=vavg(Vu32.uh,Vv32.uh):rnd
+v2.uh=vavg(v0.uh,v0.uh):rnd
+//CHECK: 1ce0c082
+
+//V6_vavguw
+//Vd32.uw=vavg(Vu32.uw,Vv32.uw)
+v2.uw=vavg(v0.uw,v0.uw)
+//CHECK: 1f00e042
+
+//V6_vavguwrnd
+//Vd32.uw=vavg(Vu32.uw,Vv32.uw):rnd
+v2.uw=vavg(v0.uw,v0.uw):rnd
+//CHECK: 1f00e062
+
+//V6_vavgb
+//Vd32.b=vavg(Vu32.b,Vv32.b)
+v2.b=vavg(v0.b,v0.b)
+//CHECK: 1f00e082
+
+//V6_vavgbrnd
+//Vd32.b=vavg(Vu32.b,Vv32.b):rnd
+v2.b=vavg(v0.b,v0.b):rnd
+//CHECK: 1f00e0a2
+
+//V6_vnavgb
+//Vd32.b=vnavg(Vu32.b,Vv32.b)
+v2.b=vnavg(v0.b,v0.b)
+//CHECK: 1f00e0c2
+
+//V6_vavgh
+//Vd32.h=vavg(Vu32.h,Vv32.h)
+v2.h=vavg(v0.h,v0.h)
+//CHECK: 1cc0c0c2
+
+//V6_vavghrnd
+//Vd32.h=vavg(Vu32.h,Vv32.h):rnd
+v2.h=vavg(v0.h,v0.h):rnd
+//CHECK: 1ce0c0a2
+
+//V6_vnavgh
+//Vd32.h=vnavg(Vu32.h,Vv32.h)
+v2.h=vnavg(v0.h,v0.h)
+//CHECK: 1ce0c022
+
+//V6_vavgw
+//Vd32.w=vavg(Vu32.w,Vv32.w)
+v2.w=vavg(v0.w,v0.w)
+//CHECK: 1cc0c0e2
+
+//V6_vavgwrnd
+//Vd32.w=vavg(Vu32.w,Vv32.w):rnd
+v2.w=vavg(v0.w,v0.w):rnd
+//CHECK: 1ce0c0c2
+
+//V6_vnavgw
+//Vd32.w=vnavg(Vu32.w,Vv32.w)
+v2.w=vnavg(v0.w,v0.w)
+//CHECK: 1ce0c042
+
+//V6_vabsdiffub
+//Vd32.ub=vabsdiff(Vu32.ub,Vv32.ub)
+v2.ub=vabsdiff(v0.ub,v0.ub)
+//CHECK: 1cc0c002
+
+//V6_vabsdiffuh
+//Vd32.uh=vabsdiff(Vu32.uh,Vv32.uh)
+v2.uh=vabsdiff(v0.uh,v0.uh)
+//CHECK: 1cc0c042
+
+//V6_vabsdiffh
+//Vd32.uh=vabsdiff(Vu32.h,Vv32.h)
+v2.uh=vabsdiff(v0.h,v0.h)
+//CHECK: 1cc0c022
+
+//V6_vabsdiffw
+//Vd32.uw=vabsdiff(Vu32.w,Vv32.w)
+v2.uw=vabsdiff(v0.w,v0.w)
+//CHECK: 1cc0c062
+
+//V6_vnavgub
+//Vd32.b=vnavg(Vu32.ub,Vv32.ub)
+v2.b=vnavg(v0.ub,v0.ub)
+//CHECK: 1ce0c002
+
+//V6_vaddcarrysat
+//Vd32.w=vadd(Vu32.w,Vv32.w,Qs4):carry:sat
+v2.w=vadd(v0.w,v0.w,q0):carry:sat
+//CHECK: 1d80e002
+
+//V6_vaddcarry
+//Vd32.w=vadd(Vu32.w,Vv32.w,Qx4):carry
+v2.w=vadd(v0.w,v0.w,q0):carry
+//CHECK: 1ca0e002
+
+//V6_vsubcarry
+//Vd32.w=vsub(Vu32.w,Vv32.w,Qx4):carry
+v2.w=vsub(v0.w,v0.w,q0):carry
+//CHECK: 1ca0e082
+
+//V6_vaddcarryo
+//Vd32.w,Qe4=vadd(Vu32.w,Vv32.w):carry
+v2.w,q0=vadd(v0.w,v0.w):carry
+//CHECK: 1da0e002
+
+//V6_vsubcarryo
+//Vd32.w,Qe4=vsub(Vu32.w,Vv32.w):carry
+v2.w,q0=vsub(v0.w,v0.w):carry
+//CHECK: 1da0e082
+
+//V6_vsatdw
+//Vd32.w=vsatdw(Vu32.w,Vv32.w)
+v2.w=vsatdw(v0.w,v0.w)
+//CHECK: 1d80e0e2
+
+//V6_vaddububb_sat
+//Vd32.ub=vadd(Vu32.ub,Vv32.b):sat
+v2.ub=vadd(v0.ub,v0.b):sat
+//CHECK: 1ea0c082
+
+//V6_vsubububb_sat
+//Vd32.ub=vsub(Vu32.ub,Vv32.b):sat
+v2.ub=vsub(v0.ub,v0.b):sat
+//CHECK: 1ea0c0a2
+
+//V6_vaddubh
+//Vdd32.h=vadd(Vu32.ub,Vv32.ub)
+v1:0.h=vadd(v0.ub,v0.ub)
+//CHECK: 1ca0c040
+
+//V6_vsububh
+//Vdd32.h=vsub(Vu32.ub,Vv32.ub)
+v1:0.h=vsub(v0.ub,v0.ub)
+//CHECK: 1ca0c0a0
+
+//V6_vaddhw
+//Vdd32.w=vadd(Vu32.h,Vv32.h)
+v1:0.w=vadd(v0.h,v0.h)
+//CHECK: 1ca0c080
+
+//V6_vsubhw
+//Vdd32.w=vsub(Vu32.h,Vv32.h)
+v1:0.w=vsub(v0.h,v0.h)
+//CHECK: 1ca0c0e0
+
+//V6_vadduhw
+//Vdd32.w=vadd(Vu32.uh,Vv32.uh)
+v1:0.w=vadd(v0.uh,v0.uh)
+//CHECK: 1ca0c060
+
+//V6_vsubuhw
+//Vdd32.w=vsub(Vu32.uh,Vv32.uh)
+v1:0.w=vsub(v0.uh,v0.uh)
+//CHECK: 1ca0c0c0
+
+//V6_vaddhw_acc
+//Vxx32.w+=vadd(Vu32.h,Vv32.h)
+v1:0.w+=vadd(v0.h,v0.h)
+//CHECK: 1c20e040
+
+//V6_vadduhw_acc
+//Vxx32.w+=vadd(Vu32.uh,Vv32.uh)
+v1:0.w+=vadd(v0.uh,v0.uh)
+//CHECK: 1c40e080
+
+//V6_vaddubh_acc
+//Vxx32.h+=vadd(Vu32.ub,Vv32.ub)
+v1:0.h+=vadd(v0.ub,v0.ub)
+//CHECK: 1c40e0a0
+
+//V6_vaddbq
+//if (Qv4) Vx32.b+=Vu32.b
+if (q0) v6.b+=v0.b
+//CHECK: 1e01e006
+
+//V6_vsubbq
+//if (Qv4) Vx32.b-=Vu32.b
+if (q0) v6.b-=v0.b
+//CHECK: 1e01e0c6
+
+//V6_vaddbnq
+//if (!Qv4) Vx32.b+=Vu32.b
+if (!q0) v6.b+=v0.b
+//CHECK: 1e01e066
+
+//V6_vsubbnq
+//if (!Qv4) Vx32.b-=Vu32.b
+if (!q0) v6.b-=v0.b
+//CHECK: 1e02e026
+
+//V6_vaddhq
+//if (Qv4) Vx32.h+=Vu32.h
+if (q0) v6.h+=v0.h
+//CHECK: 1e01e026
+
+//V6_vsubhq
+//if (Qv4) Vx32.h-=Vu32.h
+if (q0) v6.h-=v0.h
+//CHECK: 1e01e0e6
+
+//V6_vaddhnq
+//if (!Qv4) Vx32.h+=Vu32.h
+if (!q0) v6.h+=v0.h
+//CHECK: 1e01e086
+
+//V6_vsubhnq
+//if (!Qv4) Vx32.h-=Vu32.h
+if (!q0) v6.h-=v0.h
+//CHECK: 1e02e046
+
+//V6_vaddwq
+//if (Qv4) Vx32.w+=Vu32.w
+if (q0) v6.w+=v0.w
+//CHECK: 1e01e046
+
+//V6_vsubwq
+//if (Qv4) Vx32.w-=Vu32.w
+if (q0) v6.w-=v0.w
+//CHECK: 1e02e006
+
+//V6_vaddwnq
+//if (!Qv4) Vx32.w+=Vu32.w
+if (!q0) v6.w+=v0.w
+//CHECK: 1e01e0a6
+
+//V6_vsubwnq
+//if (!Qv4) Vx32.w-=Vu32.w
+if (!q0) v6.w-=v0.w
+//CHECK: 1e02e066
+
+//V6_vabsb
+//Vd32.b=vabs(Vu32.b)
+v2.b=vabs(v0.b)
+//CHECK: 1e01c082
+
+//V6_vabsb_sat
+//Vd32.b=vabs(Vu32.b):sat
+v2.b=vabs(v0.b):sat
+//CHECK: 1e01c0a2
+
+//V6_vabsh
+//Vd32.h=vabs(Vu32.h)
+v2.h=vabs(v0.h)
+//CHECK: 1e00c002
+
+//V6_vabsh_sat
+//Vd32.h=vabs(Vu32.h):sat
+v2.h=vabs(v0.h):sat
+//CHECK: 1e00c022
+
+//V6_vabsw
+//Vd32.w=vabs(Vu32.w)
+v2.w=vabs(v0.w)
+//CHECK: 1e00c042
+
+//V6_vabsw_sat
+//Vd32.w=vabs(Vu32.w):sat
+v2.w=vabs(v0.w):sat
+//CHECK: 1e00c062
+
+//V6_vmpybv
+//Vdd32.h=vmpy(Vu32.b,Vv32.b)
+v1:0.h=vmpy(v0.b,v0.b)
+//CHECK: 1c00c080
+
+//V6_vmpybv_acc
+//Vxx32.h+=vmpy(Vu32.b,Vv32.b)
+v1:0.h+=vmpy(v0.b,v0.b)
+//CHECK: 1c00e080
+
+//V6_vmpyubv
+//Vdd32.uh=vmpy(Vu32.ub,Vv32.ub)
+v1:0.uh=vmpy(v0.ub,v0.ub)
+//CHECK: 1c00c0a0
+
+//V6_vmpyubv_acc
+//Vxx32.uh+=vmpy(Vu32.ub,Vv32.ub)
+v1:0.uh+=vmpy(v0.ub,v0.ub)
+//CHECK: 1c00e0a0
+
+//V6_vmpybusv
+//Vdd32.h=vmpy(Vu32.ub,Vv32.b)
+v1:0.h=vmpy(v0.ub,v0.b)
+//CHECK: 1c00c0c0
+
+//V6_vmpybusv_acc
+//Vxx32.h+=vmpy(Vu32.ub,Vv32.b)
+v1:0.h+=vmpy(v0.ub,v0.b)
+//CHECK: 1c00e0c0
+
+//V6_vmpabusv
+//Vdd32.h=vmpa(Vuu32.ub,Vvv32.b)
+v1:0.h=vmpa(v1:0.ub,v1:0.b)
+//CHECK: 1c20c060
+
+//V6_vmpabuuv
+//Vdd32.h=vmpa(Vuu32.ub,Vvv32.ub)
+v1:0.h=vmpa(v1:0.ub,v1:0.ub)
+//CHECK: 1ce0c0e0
+
+//V6_vmpyhv
+//Vdd32.w=vmpy(Vu32.h,Vv32.h)
+v1:0.w=vmpy(v0.h,v0.h)
+//CHECK: 1c00c0e0
+
+//V6_vmpyhv_acc
+//Vxx32.w+=vmpy(Vu32.h,Vv32.h)
+v1:0.w+=vmpy(v0.h,v0.h)
+//CHECK: 1c00e0e0
+
+//V6_vmpyuhv
+//Vdd32.uw=vmpy(Vu32.uh,Vv32.uh)
+v1:0.uw=vmpy(v0.uh,v0.uh)
+//CHECK: 1c20c000
+
+//V6_vmpyuhv_acc
+//Vxx32.uw+=vmpy(Vu32.uh,Vv32.uh)
+v1:0.uw+=vmpy(v0.uh,v0.uh)
+//CHECK: 1c20e000
+
+//V6_vmpyhvsrs
+//Vd32.h=vmpy(Vu32.h,Vv32.h):<<1:rnd:sat
+v2.h=vmpy(v0.h,v0.h):<<1:rnd:sat
+//CHECK: 1c20c022
+
+//V6_vmpyuhvs
+//Vd32.uh=vmpy(Vu32.uh,Vv32.uh):>>16
+v2.uh=vmpy(v0.uh,v0.uh):>>16
+//CHECK: 1fc0e0e2
+
+//V6_vmpyhus
+//Vdd32.w=vmpy(Vu32.h,Vv32.uh)
+v1:0.w=vmpy(v0.h,v0.uh)
+//CHECK: 1c20c040
+
+//V6_vmpyhus_acc
+//Vxx32.w+=vmpy(Vu32.h,Vv32.uh)
+v1:0.w+=vmpy(v0.h,v0.uh)
+//CHECK: 1c20e020
+
+//V6_vmpy_qf32
+//Vd32.qf32=vmpy(Vu32.qf32,Vv32.qf32)
+v2.qf32=vmpy(v0.qf32,v0.qf32)
+//CHECK: 1fe0e002
+
+//V6_vmpy_qf32_sf
+//Vd32.qf32=vmpy(Vu32.sf,Vv32.sf)
+v2.qf32=vmpy(v0.sf,v0.sf)
+//CHECK: 1fe0e022
+
+//V6_vmpy_qf16
+//Vd32.qf16=vmpy(Vu32.qf16,Vv32.qf16)
+v2.qf16=vmpy(v0.qf16,v0.qf16)
+//CHECK: 1fe0e062
+
+//V6_vmpy_qf16_hf
+//Vd32.qf16=vmpy(Vu32.hf,Vv32.hf)
+v2.qf16=vmpy(v0.hf,v0.hf)
+//CHECK: 1fe0e082
+
+//V6_vmpy_qf16_mix_hf
+//Vd32.qf16=vmpy(Vu32.qf16,Vv32.hf)
+v2.qf16=vmpy(v0.qf16,v0.hf)
+//CHECK: 1fe0e0a2
+
+//V6_vmpy_qf32_qf16
+//Vdd32.qf32=vmpy(Vu32.qf16,Vv32.qf16)
+v1:0.qf32=vmpy(v0.qf16,v0.qf16)
+//CHECK: 1fe0e0c0
+
+//V6_vmpy_qf32_hf
+//Vdd32.qf32=vmpy(Vu32.hf,Vv32.hf)
+v1:0.qf32=vmpy(v0.hf,v0.hf)
+//CHECK: 1fe0e0e0
+
+//V6_vmpy_qf32_mix_hf
+//Vdd32.qf32=vmpy(Vu32.qf16,Vv32.hf)
+v1:0.qf32=vmpy(v0.qf16,v0.hf)
+//CHECK: 1f80e000
+
+//V6_vadd_qf32
+//Vd32.qf32=vadd(Vu32.qf32,Vv32.qf32)
+v2.qf32=vadd(v0.qf32,v0.qf32)
+//CHECK: 1fa0e002
+
+//V6_vadd_sf
+//Vd32.qf32=vadd(Vu32.sf,Vv32.sf)
+v2.qf32=vadd(v0.sf,v0.sf)
+//CHECK: 1fa0e022
+
+//V6_vadd_qf32_mix
+//Vd32.qf32=vadd(Vu32.qf32,Vv32.sf)
+v2.qf32=vadd(v0.qf32,v0.sf)
+//CHECK: 1fa0e042
+
+//V6_vsub_qf32
+//Vd32.qf32=vsub(Vu32.qf32,Vv32.qf32)
+v2.qf32=vsub(v0.qf32,v0.qf32)
+//CHECK: 1fa0e062
+
+//V6_vsub_sf
+//Vd32.qf32=vsub(Vu32.sf,Vv32.sf)
+v2.qf32=vsub(v0.sf,v0.sf)
+//CHECK: 1fa0e082
+
+//V6_vsub_qf32_mix
+//Vd32.qf32=vsub(Vu32.qf32,Vv32.sf)
+v2.qf32=vsub(v0.qf32,v0.sf)
+//CHECK: 1fa0e0a2
+
+//V6_vsub_sf_mix
+//Vd32.qf32=vsub(Vu32.sf,Vv32.qf32)
+v2.qf32=vsub(v0.sf,v0.qf32)
+//CHECK: 1a00e002
+
+//V6_vadd_qf16
+//Vd32.qf16=vadd(Vu32.qf16,Vv32.qf16)
+v2.qf16=vadd(v0.qf16,v0.qf16)
+//CHECK: 1f60e042
+
+//V6_vadd_hf
+//Vd32.qf16=vadd(Vu32.hf,Vv32.hf)
+v2.qf16=vadd(v0.hf,v0.hf)
+//CHECK: 1f60e062
+
+//V6_vadd_qf16_mix
+//Vd32.qf16=vadd(Vu32.qf16,Vv32.hf)
+v2.qf16=vadd(v0.qf16,v0.hf)
+//CHECK: 1f60e082
+
+//V6_vsub_qf16
+//Vd32.qf16=vsub(Vu32.qf16,Vv32.qf16)
+v2.qf16=vsub(v0.qf16,v0.qf16)
+//CHECK: 1f60e0a2
+
+//V6_vsub_hf
+//Vd32.qf16=vsub(Vu32.hf,Vv32.hf)
+v2.qf16=vsub(v0.hf,v0.hf)
+//CHECK: 1f60e0c2
+
+//V6_vsub_qf16_mix
+//Vd32.qf16=vsub(Vu32.qf16,Vv32.hf)
+v2.qf16=vsub(v0.qf16,v0.hf)
+//CHECK: 1f60e0e2
+
+//V6_vsub_hf_mix
+//Vd32.qf16=vsub(Vu32.hf,Vv32.qf16)
+v2.qf16=vsub(v0.hf,v0.qf16)
+//CHECK: 1a00e082
+
+//V6_vconv_sf_qf32
+//Vd32.sf=Vu32.qf32
+v2.sf=v0.qf32
+//CHECK: 1e04e002
+
+//V6_vconv_hf_qf16
+//Vd32.hf=Vu32.qf16
+v2.hf=v0.qf16
+//CHECK: 1e04e062
+
+//V6_vconv_hf_qf32
+//Vd32.hf=Vuu32.qf32
+v2.hf=v1:0.qf32
+//CHECK: 1e04e0c2
+
+//V6_vconv_bf_qf32
+//Vd32.bf=Vuu32.qf32
+v2.bf=v1:0.qf32
+//CHECK: 1e06e0e2
+
+//V6_vconv_qf32_sf
+//Vd32.qf32=Vu32.sf
+v2.qf32=v0.sf
+//CHECK: 1e0de0c2
+
+//V6_vconv_qf32_qf32
+//Vd32.qf32=Vu32.qf32
+v2.qf32=v0.qf32
+//CHECK: 1e0de0e2
+
+//V6_vconv_qf16_hf
+//Vd32.qf16=Vu32.hf
+v2.qf16=v0.hf
+//CHECK: 1e0ce082
+
+//V6_vconv_qf16_qf16
+//Vd32.qf16=Vu32.qf16
+v2.qf16=v0.qf16
+//CHECK: 1e0ce0c2
+
+//V6_vneg_qf32_sf
+//Vd32.qf32=vneg(Vu32.sf)
+v2.qf32=vneg(v0.sf)
+//CHECK: 1e0ee002
+
+//V6_vneg_qf32_qf32
+//Vd32.qf32=vneg(Vu32.qf32)
+v2.qf32=vneg(v0.qf32)
+//CHECK: 1e0ee022
+
+//V6_vneg_qf16_hf
+//Vd32.qf16=vneg(Vu32.hf)
+v2.qf16=vneg(v0.hf)
+//CHECK: 1e0ee042
+
+//V6_vneg_qf16_qf16
+//Vd32.qf16=vneg(Vu32.qf16)
+v2.qf16=vneg(v0.qf16)
+//CHECK: 1e0ee062
+
+//V6_vabs_qf32_sf
+//Vd32.qf32=vabs(Vu32.sf)
+v2.qf32=vabs(v0.sf)
+//CHECK: 1e0ee082
+
+//V6_vabs_qf32_qf32
+//Vd32.qf32=vabs(Vu32.qf32)
+v2.qf32=vabs(v0.qf32)
+//CHECK: 1e0ee0a2
+
+//V6_vabs_qf16_hf
+//Vd32.qf16=vabs(Vu32.hf)
+v2.qf16=vabs(v0.hf)
+//CHECK: 1e0ee0c2
+
+//V6_vabs_qf16_qf16
+//Vd32.qf16=vabs(Vu32.qf16)
+v2.qf16=vabs(v0.qf16)
+//CHECK: 1e0ee0e2
+
+//V6_vconv_w_sf
+//Vd32.w=Vu32.sf
+v2.w=v0.sf
+//CHECK: 1e05e022
+
+//V6_vconv_h_hf
+//Vd32.h=Vu32.hf
+v2.h=v0.hf
+//CHECK: 1e05e042
+
+//V6_vconv_h_hf_rnd
+//Vd32.h=Vu32.hf:rnd
+v2.h=v0.hf:rnd
+//CHECK: 1e06e0c2
+
+//V6_vconv_sf_w
+//Vd32.sf=Vu32.w
+v2.sf=v0.w
+//CHECK: 1e05e062
+
+//V6_vconv_hf_h
+//Vd32.hf=Vu32.h
+v2.hf=v0.h
+//CHECK: 1e05e082
+
+//V6_vconv_qf16_f8
+//Vdd32.qf16=Vu32.f8
+v1:0.qf16=v0.f8
+//CHECK: 1e0ce0a0
+
+//V6_vconv_f8_qf16
+//Vd32.f8=Vu32.qf16
+v2.f8=v0.qf16
+//CHECK: 1e0ce0e2
+
+//V6_vilog2_qf32
+//Vd32.w=vilog2(Vu32.qf32)
+v2.w=vilog2(v0.qf32)
+//CHECK: 1e0ce002
+
+//V6_vilog2_qf16
+//Vd32.w=vilog2(Vu32.qf16)
+v2.w=vilog2(v0.qf16)
+//CHECK: 1e0ce022
+
+//V6_vilog2_sf
+//Vd32.w=vilog2(Vu32.sf)
+v2.w=vilog2(v0.sf)
+//CHECK: 1e0ce042
+
+//V6_vilog2_hf
+//Vd32.w=vilog2(Vu32.hf)
+v2.w=vilog2(v0.hf)
+//CHECK: 1e0ce062
+
+//V6_vmpyih
+//Vd32.h=vmpyi(Vu32.h,Vv32.h)
+v2.h=vmpyi(v0.h,v0.h)
+//CHECK: 1c20c082
+
+//V6_vmpyih_acc
+//Vx32.h+=vmpyi(Vu32.h,Vv32.h)
+v6.h+=vmpyi(v0.h,v0.h)
+//CHECK: 1c20e086
+
+//V6_vmpyewuh
+//Vd32.w=vmpye(Vu32.w,Vv32.uh)
+v2.w=vmpye(v0.w,v0.uh)
+//CHECK: 1fe0c0a2
+
+//V6_vmpyowh
+//Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:sat
+v2.w=vmpyo(v0.w,v0.h):<<1:sat
+//CHECK: 1fe0c0e2
+
+//V6_vmpyowh_rnd
+//Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat
+v2.w=vmpyo(v0.w,v0.h):<<1:rnd:sat
+//CHECK: 1f40c002
+
+//V6_vmpyewuh_64
+//Vdd32=vmpye(Vu32.w,Vv32.uh)
+v1:0=vmpye(v0.w,v0.uh)
+//CHECK: 1ea0c0c0
+
+//V6_vmpyowh_64_acc
+//Vxx32+=vmpyo(Vu32.w,Vv32.h)
+v1:0+=vmpyo(v0.w,v0.h)
+//CHECK: 1c20e060
+
+//V6_vmpyowh_sacc
+//Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:sat:shift
+v6.w+=vmpyo(v0.w,v0.h):<<1:sat:shift
+//CHECK: 1c20e0c6
+
+//V6_vmpyowh_rnd_sacc
+//Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat:shift
+v6.w+=vmpyo(v0.w,v0.h):<<1:rnd:sat:shift
+//CHECK: 1c20e0e6
+
+//V6_vmpyieoh
+//Vd32.w=vmpyieo(Vu32.h,Vv32.h)
+v2.w=vmpyieo(v0.h,v0.h)
+//CHECK: 1f60c002
+
+//V6_vmpyiewuh
+//Vd32.w=vmpyie(Vu32.w,Vv32.uh)
+v2.w=vmpyie(v0.w,v0.uh)
+//CHECK: 1fc0c002
+
+//V6_vmpyiowh
+//Vd32.w=vmpyio(Vu32.w,Vv32.h)
+v2.w=vmpyio(v0.w,v0.h)
+//CHECK: 1fc0c022
+
+//V6_vmpyiewh_acc
+//Vx32.w+=vmpyie(Vu32.w,Vv32.h)
+v6.w+=vmpyie(v0.w,v0.h)
+//CHECK: 1c40e006
+
+//V6_vmpyiewuh_acc
+//Vx32.w+=vmpyie(Vu32.w,Vv32.uh)
+v6.w+=vmpyie(v0.w,v0.uh)
+//CHECK: 1c20e0a6
+
+//V6_vmpyub
+//Vdd32.uh=vmpy(Vu32.ub,Rt32.ub)
+v1:0.uh=vmpy(v0.ub,r0.ub)
+//CHECK: 19c0c000
+
+//V6_vmpyub_acc
+//Vxx32.uh+=vmpy(Vu32.ub,Rt32.ub)
+v1:0.uh+=vmpy(v0.ub,r0.ub)
+//CHECK: 1980e000
+
+//V6_vmpybus
+//Vdd32.h=vmpy(Vu32.ub,Rt32.b)
+v1:0.h=vmpy(v0.ub,r0.b)
+//CHECK: 1920c0a0
+
+//V6_vmpybus_acc
+//Vxx32.h+=vmpy(Vu32.ub,Rt32.b)
+v1:0.h+=vmpy(v0.ub,r0.b)
+//CHECK: 1920e0a0
+
+//V6_vmpabus
+//Vdd32.h=vmpa(Vuu32.ub,Rt32.b)
+v1:0.h=vmpa(v1:0.ub,r0.b)
+//CHECK: 1920c0c0
+
+//V6_vmpabus_acc
+//Vxx32.h+=vmpa(Vuu32.ub,Rt32.b)
+v1:0.h+=vmpa(v1:0.ub,r0.b)
+//CHECK: 1920e0c0
+
+//V6_vmpabuu
+//Vdd32.h=vmpa(Vuu32.ub,Rt32.ub)
+v1:0.h=vmpa(v1:0.ub,r0.ub)
+//CHECK: 1960c060
+
+//V6_vmpabuu_acc
+//Vxx32.h+=vmpa(Vuu32.ub,Rt32.ub)
+v1:0.h+=vmpa(v1:0.ub,r0.ub)
+//CHECK: 19a0e080
+
+//V6_vmpahb
+//Vdd32.w=vmpa(Vuu32.h,Rt32.b)
+v1:0.w=vmpa(v1:0.h,r0.b)
+//CHECK: 1920c0e0
+
+//V6_vmpahb_acc
+//Vxx32.w+=vmpa(Vuu32.h,Rt32.b)
+v1:0.w+=vmpa(v1:0.h,r0.b)
+//CHECK: 1920e0e0
+
+//V6_vmpauhb
+//Vdd32.w=vmpa(Vuu32.uh,Rt32.b)
+v1:0.w=vmpa(v1:0.uh,r0.b)
+//CHECK: 1980c0a0
+
+//V6_vmpauhb_acc
+//Vxx32.w+=vmpa(Vuu32.uh,Rt32.b)
+v1:0.w+=vmpa(v1:0.uh,r0.b)
+//CHECK: 1980e040
+
+//V6_vmpyh
+//Vdd32.w=vmpy(Vu32.h,Rt32.h)
+v1:0.w=vmpy(v0.h,r0.h)
+//CHECK: 1940c000
+
+//V6_vmpyh_acc
+//Vxx32.w+=vmpy(Vu32.h,Rt32.h)
+v1:0.w+=vmpy(v0.h,r0.h)
+//CHECK: 19a0e0c0
+
+//V6_vmpyhsat_acc
+//Vxx32.w+=vmpy(Vu32.h,Rt32.h):sat
+v1:0.w+=vmpy(v0.h,r0.h):sat
+//CHECK: 1940e000
+
+//V6_vmpyhss
+//Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:sat
+v2.h=vmpy(v0.h,r0.h):<<1:sat
+//CHECK: 1940c022
+
+//V6_vmpyhsrs
+//Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:rnd:sat
+v2.h=vmpy(v0.h,r0.h):<<1:rnd:sat
+//CHECK: 1940c042
+
+//V6_vmpyuh
+//Vdd32.uw=vmpy(Vu32.uh,Rt32.uh)
+v1:0.uw=vmpy(v0.uh,r0.uh)
+//CHECK: 1940c060
+
+//V6_vmpyuh_acc
+//Vxx32.uw+=vmpy(Vu32.uh,Rt32.uh)
+v1:0.uw+=vmpy(v0.uh,r0.uh)
+//CHECK: 1940e020
+
+//V6_vmpyihb
+//Vd32.h=vmpyi(Vu32.h,Rt32.b)
+v2.h=vmpyi(v0.h,r0.b)
+//CHECK: 1960c002
+
+//V6_vmpyihb_acc
+//Vx32.h+=vmpyi(Vu32.h,Rt32.b)
+v6.h+=vmpyi(v0.h,r0.b)
+//CHECK: 1960e026
+
+//V6_vmpyiwb
+//Vd32.w=vmpyi(Vu32.w,Rt32.b)
+v2.w=vmpyi(v0.w,r0.b)
+//CHECK: 19a0c002
+
+//V6_vmpyiwb_acc
+//Vx32.w+=vmpyi(Vu32.w,Rt32.b)
+v6.w+=vmpyi(v0.w,r0.b)
+//CHECK: 1940e046
+
+//V6_vmpyiwub
+//Vd32.w=vmpyi(Vu32.w,Rt32.ub)
+v2.w=vmpyi(v0.w,r0.ub)
+//CHECK: 1980c0c2
+
+//V6_vmpyiwub_acc
+//Vx32.w+=vmpyi(Vu32.w,Rt32.ub)
+v6.w+=vmpyi(v0.w,r0.ub)
+//CHECK: 1980e026
+
+//V6_vmpyiwh
+//Vd32.w=vmpyi(Vu32.w,Rt32.h)
+v2.w=vmpyi(v0.w,r0.h)
+//CHECK: 1980c0e2
+
+//V6_vmpyiwh_acc
+//Vx32.w+=vmpyi(Vu32.w,Rt32.h)
+v6.w+=vmpyi(v0.w,r0.h)
+//CHECK: 1940e066
+
+//V6_vand
+//Vd32=vand(Vu32,Vv32)
+v2=vand(v0,v0)
+//CHECK: 1c20c0a2
+
+//V6_vor
+//Vd32=vor(Vu32,Vv32)
+v2=vor(v0,v0)
+//CHECK: 1c20c0c2
+
+//V6_vxor
+//Vd32=vxor(Vu32,Vv32)
+v2=vxor(v0,v0)
+//CHECK: 1c20c0e2
+
+//V6_vnot
+//Vd32=vnot(Vu32)
+v2=vnot(v0)
+//CHECK: 1e00c082
+
+//V6_vandqrt
+//Vd32=vand(Qu4,Rt32)
+v2=vand(q0,r0)
+//CHECK: 19a0c0a2
+
+//V6_vandqrt_acc
+//Vx32|=vand(Qu4,Rt32)
+v6|=vand(q0,r0)
+//CHECK: 1960e066
+
+//V6_vandnqrt
+//Vd32=vand(!Qu4,Rt32)
+v2=vand(!q0,r0)
+//CHECK: 19a0c4a2
+
+//V6_vandnqrt_acc
+//Vx32|=vand(!Qu4,Rt32)
+v6|=vand(!q0,r0)
+//CHECK: 1960e466
+
+//V6_vandvrt
+//Qd4=vand(Vu32,Rt32)
+q0=vand(v0,r0)
+//CHECK: 19a0c048
+
+//V6_vandvrt_acc
+//Qx4|=vand(Vu32,Rt32)
+q0|=vand(v0,r0)
+//CHECK: 1960e080
+
+//V6_vandvqv
+//Vd32=vand(Qv4,Vu32)
+v2=vand(q0,v0)
+//CHECK: 1e03e002
+
+//V6_vandvnqv
+//Vd32=vand(!Qv4,Vu32)
+v2=vand(!q0,v0)
+//CHECK: 1e03e022
+
+//V6_vgtw
+//Qd4=vcmp.gt(Vu32.w,Vv32.w)
+q0=vcmp.gt(v0.w,v0.w)
+//CHECK: 1f80c018
+
+//V6_vgtw_and
+//Qx4&=vcmp.gt(Vu32.w,Vv32.w)
+q0&=vcmp.gt(v0.w,v0.w)
+//CHECK: 1c80e018
+
+//V6_vgtw_or
+//Qx4|=vcmp.gt(Vu32.w,Vv32.w)
+q0|=vcmp.gt(v0.w,v0.w)
+//CHECK: 1c80e058
+
+//V6_vgtw_xor
+//Qx4^=vcmp.gt(Vu32.w,Vv32.w)
+q0^=vcmp.gt(v0.w,v0.w)
+//CHECK: 1c80e098
+
+//V6_veqw
+//Qd4=vcmp.eq(Vu32.w,Vv32.w)
+q0=vcmp.eq(v0.w,v0.w)
+//CHECK: 1f80c008
+
+//V6_veqw_and
+//Qx4&=vcmp.eq(Vu32.w,Vv32.w)
+q0&=vcmp.eq(v0.w,v0.w)
+//CHECK: 1c80e008
+
+//V6_veqw_or
+//Qx4|=vcmp.eq(Vu32.w,Vv32.w)
+q0|=vcmp.eq(v0.w,v0.w)
+//CHECK: 1c80e048
+
+//V6_veqw_xor
+//Qx4^=vcmp.eq(Vu32.w,Vv32.w)
+q0^=vcmp.eq(v0.w,v0.w)
+//CHECK: 1c80e088
+
+//V6_vgth
+//Qd4=vcmp.gt(Vu32.h,Vv32.h)
+q0=vcmp.gt(v0.h,v0.h)
+//CHECK: 1f80c014
+
+//V6_vgth_and
+//Qx4&=vcmp.gt(Vu32.h,Vv32.h)
+q0&=vcmp.gt(v0.h,v0.h)
+//CHECK: 1c80e014
+
+//V6_vgth_or
+//Qx4|=vcmp.gt(Vu32.h,Vv32.h)
+q0|=vcmp.gt(v0.h,v0.h)
+//CHECK: 1c80e054
+
+//V6_vgth_xor
+//Qx4^=vcmp.gt(Vu32.h,Vv32.h)
+q0^=vcmp.gt(v0.h,v0.h)
+//CHECK: 1c80e094
+
+//V6_veqh
+//Qd4=vcmp.eq(Vu32.h,Vv32.h)
+q0=vcmp.eq(v0.h,v0.h)
+//CHECK: 1f80c004
+
+//V6_veqh_and
+//Qx4&=vcmp.eq(Vu32.h,Vv32.h)
+q0&=vcmp.eq(v0.h,v0.h)
+//CHECK: 1c80e004
+
+//V6_veqh_or
+//Qx4|=vcmp.eq(Vu32.h,Vv32.h)
+q0|=vcmp.eq(v0.h,v0.h)
+//CHECK: 1c80e044
+
+//V6_veqh_xor
+//Qx4^=vcmp.eq(Vu32.h,Vv32.h)
+q0^=vcmp.eq(v0.h,v0.h)
+//CHECK: 1c80e084
+
+//V6_vgtb
+//Qd4=vcmp.gt(Vu32.b,Vv32.b)
+q0=vcmp.gt(v0.b,v0.b)
+//CHECK: 1f80c010
+
+//V6_vgtb_and
+//Qx4&=vcmp.gt(Vu32.b,Vv32.b)
+q0&=vcmp.gt(v0.b,v0.b)
+//CHECK: 1c80e010
+
+//V6_vgtb_or
+//Qx4|=vcmp.gt(Vu32.b,Vv32.b)
+q0|=vcmp.gt(v0.b,v0.b)
+//CHECK: 1c80e050
+
+//V6_vgtb_xor
+//Qx4^=vcmp.gt(Vu32.b,Vv32.b)
+q0^=vcmp.gt(v0.b,v0.b)
+//CHECK: 1c80e090
+
+//V6_veqb
+//Qd4=vcmp.eq(Vu32.b,Vv32.b)
+q0=vcmp.eq(v0.b,v0.b)
+//CHECK: 1f80c000
+
+//V6_veqb_and
+//Qx4&=vcmp.eq(Vu32.b,Vv32.b)
+q0&=vcmp.eq(v0.b,v0.b)
+//CHECK: 1c80e000
+
+//V6_veqb_or
+//Qx4|=vcmp.eq(Vu32.b,Vv32.b)
+q0|=vcmp.eq(v0.b,v0.b)
+//CHECK: 1c80e040
+
+//V6_veqb_xor
+//Qx4^=vcmp.eq(Vu32.b,Vv32.b)
+q0^=vcmp.eq(v0.b,v0.b)
+//CHECK: 1c80e080
+
+//V6_vgtuw
+//Qd4=vcmp.gt(Vu32.uw,Vv32.uw)
+q0=vcmp.gt(v0.uw,v0.uw)
+//CHECK: 1f80c028
+
+//V6_vgtuw_and
+//Qx4&=vcmp.gt(Vu32.uw,Vv32.uw)
+q0&=vcmp.gt(v0.uw,v0.uw)
+//CHECK: 1c80e028
+
+//V6_vgtuw_or
+//Qx4|=vcmp.gt(Vu32.uw,Vv32.uw)
+q0|=vcmp.gt(v0.uw,v0.uw)
+//CHECK: 1c80e068
+
+//V6_vgtuw_xor
+//Qx4^=vcmp.gt(Vu32.uw,Vv32.uw)
+q0^=vcmp.gt(v0.uw,v0.uw)
+//CHECK: 1c80e0a8
+
+//V6_vgtuh
+//Qd4=vcmp.gt(Vu32.uh,Vv32.uh)
+q0=vcmp.gt(v0.uh,v0.uh)
+//CHECK: 1f80c024
+
+//V6_vgtuh_and
+//Qx4&=vcmp.gt(Vu32.uh,Vv32.uh)
+q0&=vcmp.gt(v0.uh,v0.uh)
+//CHECK: 1c80e024
+
+//V6_vgtuh_or
+//Qx4|=vcmp.gt(Vu32.uh,Vv32.uh)
+q0|=vcmp.gt(v0.uh,v0.uh)
+//CHECK: 1c80e064
+
+//V6_vgtuh_xor
+//Qx4^=vcmp.gt(Vu32.uh,Vv32.uh)
+q0^=vcmp.gt(v0.uh,v0.uh)
+//CHECK: 1c80e0a4
+
+//V6_vgtub
+//Qd4=vcmp.gt(Vu32.ub,Vv32.ub)
+q0=vcmp.gt(v0.ub,v0.ub)
+//CHECK: 1f80c020
+
+//V6_vgtub_and
+//Qx4&=vcmp.gt(Vu32.ub,Vv32.ub)
+q0&=vcmp.gt(v0.ub,v0.ub)
+//CHECK: 1c80e020
+
+//V6_vgtub_or
+//Qx4|=vcmp.gt(Vu32.ub,Vv32.ub)
+q0|=vcmp.gt(v0.ub,v0.ub)
+//CHECK: 1c80e060
+
+//V6_vgtub_xor
+//Qx4^=vcmp.gt(Vu32.ub,Vv32.ub)
+q0^=vcmp.gt(v0.ub,v0.ub)
+//CHECK: 1c80e0a0
+
+//V6_veqsf_and
+//Qx4&=vcmp.eq(Vu32.sf,Vv32.sf)
+q0&=vcmp.eq(v0.sf,v0.sf)
+//CHECK: 1c80e00c
+
+//V6_veqsf_xor
+//Qx4^=vcmp.eq(Vu32.sf,Vv32.sf)
+q0^=vcmp.eq(v0.sf,v0.sf)
+//CHECK: 1c80e08c
+
+//V6_veqsf_or
+//Qx4|=vcmp.eq(Vu32.sf,Vv32.sf)
+q0|=vcmp.eq(v0.sf,v0.sf)
+//CHECK: 1c80e04c
+
+//V6_veqsf
+//Qd4=vcmp.eq(Vu32.sf,Vv32.sf)
+q0=vcmp.eq(v0.sf,v0.sf)
+//CHECK: 1f80c00c
+
+//V6_veqhf_and
+//Qx4&=vcmp.eq(Vu32.hf,Vv32.hf)
+q0&=vcmp.eq(v0.hf,v0.hf)
+//CHECK: 1c80e01c
+
+//V6_veqhf_xor
+//Qx4^=vcmp.eq(Vu32.hf,Vv32.hf)
+q0^=vcmp.eq(v0.hf,v0.hf)
+//CHECK: 1c80e09c
+
+//V6_veqhf_or
+//Qx4|=vcmp.eq(Vu32.hf,Vv32.hf)
+q0|=vcmp.eq(v0.hf,v0.hf)
+//CHECK: 1c80e05c
+
+//V6_veqhf
+//Qd4=vcmp.eq(Vu32.hf,Vv32.hf)
+q0=vcmp.eq(v0.hf,v0.hf)
+//CHECK: 1f80c01c
+
+//V6_vgtsf_and
+//Qx4&=vcmp.gt(Vu32.sf,Vv32.sf)
+q0&=vcmp.gt(v0.sf,v0.sf)
+//CHECK: 1c80e0c8
+
+//V6_vgtsf_xor
+//Qx4^=vcmp.gt(Vu32.sf,Vv32.sf)
+q0^=vcmp.gt(v0.sf,v0.sf)
+//CHECK: 1c80e0e8
+
+//V6_vgtsf_or
+//Qx4|=vcmp.gt(Vu32.sf,Vv32.sf)
+q0|=vcmp.gt(v0.sf,v0.sf)
+//CHECK: 1c80e030
+
+//V6_vgtsf
+//Qd4=vcmp.gt(Vu32.sf,Vv32.sf)
+q0=vcmp.gt(v0.sf,v0.sf)
+//CHECK: 1c80e070
+
+//V6_vgthf_and
+//Qx4&=vcmp.gt(Vu32.hf,Vv32.hf)
+q0&=vcmp.gt(v0.hf,v0.hf)
+//CHECK: 1c80e0cc
+
+//V6_vgthf_xor
+//Qx4^=vcmp.gt(Vu32.hf,Vv32.hf)
+q0^=vcmp.gt(v0.hf,v0.hf)
+//CHECK: 1c80e0ec
+
+//V6_vgthf_or
+//Qx4|=vcmp.gt(Vu32.hf,Vv32.hf)
+q0|=vcmp.gt(v0.hf,v0.hf)
+//CHECK: 1c80e034
+
+//V6_vgthf
+//Qd4=vcmp.gt(Vu32.hf,Vv32.hf)
+q0=vcmp.gt(v0.hf,v0.hf)
+//CHECK: 1c80e074
+
+//V6_vgtbf_and
+//Qx4&=vcmp.gt(Vu32.bf,Vv32.bf)
+q0&=vcmp.gt(v0.bf,v0.bf)
+//CHECK: 1c80e0d0
+
+//V6_vgtbf_xor
+//Qx4^=vcmp.gt(Vu32.bf,Vv32.bf)
+q0^=vcmp.gt(v0.bf,v0.bf)
+//CHECK: 1c80e0f0
+
+//V6_vgtbf_or
+//Qx4|=vcmp.gt(Vu32.bf,Vv32.bf)
+q0|=vcmp.gt(v0.bf,v0.bf)
+//CHECK: 1c80e038
+
+//V6_vgtbf
+//Qd4=vcmp.gt(Vu32.bf,Vv32.bf)
+q0=vcmp.gt(v0.bf,v0.bf)
+//CHECK: 1c80e078
+
+//V6_vmax_sf
+//Vd32.sf=vmax(Vu32.sf,Vv32.sf)
+v2.sf=vmax(v0.sf,v0.sf)
+//CHECK: 1fc0e022
+
+//V6_vmin_sf
+//Vd32.sf=vmin(Vu32.sf,Vv32.sf)
+v2.sf=vmin(v0.sf,v0.sf)
+//CHECK: 1fc0e042
+
+//V6_vmax_hf
+//Vd32.hf=vmax(Vu32.hf,Vv32.hf)
+v2.hf=vmax(v0.hf,v0.hf)
+//CHECK: 1fc0e062
+
+//V6_vmin_hf
+//Vd32.hf=vmin(Vu32.hf,Vv32.hf)
+v2.hf=vmin(v0.hf,v0.hf)
+//CHECK: 1fc0e082
+
+//V6_pred_scalar2
+//Qd4=vsetq(Rt32)
+q0=vsetq(r0)
+//CHECK: 19a0c044
+
+//V6_pred_scalar2v2
+//Qd4=vsetq2(Rt32)
+q0=vsetq2(r0)
+//CHECK: 19a0c04c
+
+//V6_vmpy_rt_sf
+//Vd32.qf32=vmpy(Vu32.sf,Rt32.sf)
+v2.qf32=vmpy(v0.sf,r0.sf)
+//CHECK: 1a00e022
+
+//V6_vmpy_rt_qf16
+//Vd32.qf16=vmpy(Vu32.qf16,Rt32.hf)
+v2.qf16=vmpy(v0.qf16,r0.hf)
+//CHECK: 1a00e042
+
+//V6_vmpy_rt_hf
+//Vd32.qf16=vmpy(Vu32.hf,Rt32.hf)
+v2.qf16=vmpy(v0.hf,r0.hf)
+//CHECK: 1a00e062
+
+//V6_get_qfext_oracc
+//Vx32|=vgetqfext(Vu32.x,Rt32)
+v6|=vgetqfext(v0.x,r0)
+//CHECK: 19c0c0c6
+
+//V6_get_qfext
+//Vd32=vgetqfext(Vu32.x,Rt32)
+v2=vgetqfext(v0.x,r0)
+//CHECK: 19c0c0e2
+
+//V6_set_qfext
+//Vd32.x=vsetqfext(Vu32,Rt32)
+v2.x=vsetqfext(v0,r0)
+//CHECK: 19c0c062
+
+//V6_vmerge_qf
+//Vd32=vmerge(Vu32.x,Vv32.w)
+v2=vmerge(v0.x,v0.w)
+//CHECK: 1f00e0e2
+
+//V6_shuffeqw
+//Qd4.h=vshuffe(Qs4.w,Qt4.w)
+q0.h=vshuffe(q0.w,q0.w)
+//CHECK: 1e03c01c
+
+//V6_shuffeqh
+//Qd4.b=vshuffe(Qs4.h,Qt4.h)
+q0.b=vshuffe(q0.h,q0.h)
+//CHECK: 1e03c018
+
+//V6_pred_or
+//Qd4=or(Qs4,Qt4)
+q0=or(q0,q0)
+//CHECK: 1e03c004
+
+//V6_pred_and
+//Qd4=and(Qs4,Qt4)
+q0=and(q0,q0)
+//CHECK: 1e03c000
+
+//V6_pred_xor
+//Qd4=xor(Qs4,Qt4)
+q0=xor(q0,q0)
+//CHECK: 1e03c00c
+
+//V6_pred_or_n
+//Qd4=or(Qs4,!Qt4)
+q0=or(q0,!q0)
+//CHECK: 1e03c010
+
+//V6_pred_and_n
+//Qd4=and(Qs4,!Qt4)
+q0=and(q0,!q0)
+//CHECK: 1e03c014
+
+//V6_pred_not
+//Qd4=not(Qs4)
+q0=not(q0)
+//CHECK: 1e03c008
+
+//V6_vcmov
+//if (Ps4) Vd32=Vu32
+if (p0) v2=v0
+//CHECK: 1a00c002
+
+//V6_vncmov
+//if (!Ps4) Vd32=Vu32
+if (!p0) v2=v0
+//CHECK: 1a20c002
+
+//V6_vccombine
+//if (Ps4) Vdd32=vcombine(Vu32,Vv32)
+if (p0) v1:0=vcombine(v0,v0)
+//CHECK: 1a60c000
+
+//V6_vnccombine
+//if (!Ps4) Vdd32=vcombine(Vu32,Vv32)
+if (!p0) v1:0=vcombine(v0,v0)
+//CHECK: 1a40c000
+
+//V6_vmux
+//Vd32=vmux(Qt4,Vu32,Vv32)
+v2=vmux(q0,v0,v0)
+//CHECK: 1ee0e002
+
+//V6_vswap
+//Vdd32=vswap(Qt4,Vu32,Vv32)
+v1:0=vswap(q0,v0,v0)
+//CHECK: 1ea0e000
+
+//V6_vmaxb
+//Vd32.b=vmax(Vu32.b,Vv32.b)
+v2.b=vmax(v0.b,v0.b)
+//CHECK: 1f20c0a2
+
+//V6_vminb
+//Vd32.b=vmin(Vu32.b,Vv32.b)
+v2.b=vmin(v0.b,v0.b)
+//CHECK: 1f20c082
+
+//V6_vmaxub
+//Vd32.ub=vmax(Vu32.ub,Vv32.ub)
+v2.ub=vmax(v0.ub,v0.ub)
+//CHECK: 1f00c0a2
+
+//V6_vminub
+//Vd32.ub=vmin(Vu32.ub,Vv32.ub)
+v2.ub=vmin(v0.ub,v0.ub)
+//CHECK: 1f00c022
+
+//V6_vmaxuh
+//Vd32.uh=vmax(Vu32.uh,Vv32.uh)
+v2.uh=vmax(v0.uh,v0.uh)
+//CHECK: 1f00c0c2
+
+//V6_vminuh
+//Vd32.uh=vmin(Vu32.uh,Vv32.uh)
+v2.uh=vmin(v0.uh,v0.uh)
+//CHECK: 1f00c042
+
+//V6_vmaxh
+//Vd32.h=vmax(Vu32.h,Vv32.h)
+v2.h=vmax(v0.h,v0.h)
+//CHECK: 1f00c0e2
+
+//V6_vminh
+//Vd32.h=vmin(Vu32.h,Vv32.h)
+v2.h=vmin(v0.h,v0.h)
+//CHECK: 1f00c062
+
+//V6_vmaxw
+//Vd32.w=vmax(Vu32.w,Vv32.w)
+v2.w=vmax(v0.w,v0.w)
+//CHECK: 1f20c002
+
+//V6_vminw
+//Vd32.w=vmin(Vu32.w,Vv32.w)
+v2.w=vmin(v0.w,v0.w)
+//CHECK: 1f00c082
+
+//V6_vsathub
+//Vd32.ub=vsat(Vu32.h,Vv32.h)
+v2.ub=vsat(v0.h,v0.h)
+//CHECK: 1f60c042
+
+//V6_vsatwh
+//Vd32.h=vsat(Vu32.w,Vv32.w)
+v2.h=vsat(v0.w,v0.w)
+//CHECK: 1f60c062
+
+//V6_vsatuwuh
+//Vd32.uh=vsat(Vu32.uw,Vv32.uw)
+v2.uh=vsat(v0.uw,v0.uw)
+//CHECK: 1f20c0c2
+
+//V6_vshuffeb
+//Vd32.b=vshuffe(Vu32.b,Vv32.b)
+v2.b=vshuffe(v0.b,v0.b)
+//CHECK: 1f40c022
+
+//V6_vshuffob
+//Vd32.b=vshuffo(Vu32.b,Vv32.b)
+v2.b=vshuffo(v0.b,v0.b)
+//CHECK: 1f40c042
+
+//V6_vshufeh
+//Vd32.h=vshuffe(Vu32.h,Vv32.h)
+v2.h=vshuffe(v0.h,v0.h)
+//CHECK: 1f40c062
+
+//V6_vshufoh
+//Vd32.h=vshuffo(Vu32.h,Vv32.h)
+v2.h=vshuffo(v0.h,v0.h)
+//CHECK: 1f40c082
+
+//V6_vshuff
+//vshuff(Vy32,Vx32,Rt32)
+vshuff(v0,v6,r0)
+//CHECK: 19e0e026
+
+//V6_vshuffvdd
+//Vdd32=vshuff(Vu32,Vv32,Rt8)
+v1:0=vshuff(v0,v0,r0)
+//CHECK: 1b00e060
+
+//V6_vdeal
+//vdeal(Vy32,Vx32,Rt32)
+vdeal(v0,v6,r0)
+//CHECK: 19e0e046
+
+//V6_vdealvdd
+//Vdd32=vdeal(Vu32,Vv32,Rt8)
+v1:0=vdeal(v0,v0,r0)
+//CHECK: 1b00e080
+
+//V6_vshufoeh
+//Vdd32.h=vshuffoe(Vu32.h,Vv32.h)
+v1:0.h=vshuffoe(v0.h,v0.h)
+//CHECK: 1f40c0a0
+
+//V6_vshufoeb
+//Vdd32.b=vshuffoe(Vu32.b,Vv32.b)
+v1:0.b=vshuffoe(v0.b,v0.b)
+//CHECK: 1f40c0c0
+
+//V6_vdealh
+//Vd32.h=vdeal(Vu32.h)
+v2.h=vdeal(v0.h)
+//CHECK: 1e00c0c2
+
+//V6_vdealb
+//Vd32.b=vdeal(Vu32.b)
+v2.b=vdeal(v0.b)
+//CHECK: 1e00c0e2
+
+//V6_vdealb4w
+//Vd32.b=vdeale(Vu32.b,Vv32.b)
+v2.b=vdeale(v0.b,v0.b)
+//CHECK: 1f20c0e2
+
+//V6_vshuffh
+//Vd32.h=vshuff(Vu32.h)
+v2.h=vshuff(v0.h)
+//CHECK: 1e01c0e2
+
+//V6_vshuffb
+//Vd32.b=vshuff(Vu32.b)
+v2.b=vshuff(v0.b)
+//CHECK: 1e02c002
+
+//V6_extractw
+//Rd32=vextract(Vu32,Rs32)
+r2=vextract(v0,r0)
+//CHECK: 9200c022
+
+//V6_vinsertwr
+//Vx32.w=vinsert(Rt32)
+v6.w=vinsert(r0)
+//CHECK: 19a0e026
+
+//V6_lvsplatw
+//Vd32=vsplat(Rt32)
+v2=vsplat(r0)
+//CHECK: 19a0c022
+
+//V6_lvsplath
+//Vd32.h=vsplat(Rt32)
+v2.h=vsplat(r0)
+//CHECK: 19c0c022
+
+//V6_lvsplatb
+//Vd32.b=vsplat(Rt32)
+v2.b=vsplat(r0)
+//CHECK: 19c0c042
+
+//V6_vassign
+//Vd32=Vu32
+v2=v0
+//CHECK: 1e03e0e2
+
+//V6_vcombine
+//Vdd32=vcombine(Vu32,Vv32)
+v1:0=vcombine(v0,v0)
+//CHECK: 1f40c0e0
+
+//V6_vcombine_tmp
+//Vdd32.tmp=vcombine(Vu32,Vv32)
+v1:0.tmp=vcombine(v0,v0)
+//CHECK: 1ea0c0e0
+
+//V6_vassign_tmp
+//Vd32.tmp=Vu32
+v2.tmp=v0
+//CHECK: 1e01c0c2
+
+//V6_vdelta
+//Vd32=vdelta(Vu32,Vv32)
+v2=vdelta(v0,v0)
+//CHECK: 1f20c022
+
+//V6_vrdelta
+//Vd32=vrdelta(Vu32,Vv32)
+v2=vrdelta(v0,v0)
+//CHECK: 1f20c062
+
+//V6_vcl0w
+//Vd32.uw=vcl0(Vu32.uw)
+v2.uw=vcl0(v0.uw)
+//CHECK: 1e02c0a2
+
+//V6_vcl0h
+//Vd32.uh=vcl0(Vu32.uh)
+v2.uh=vcl0(v0.uh)
+//CHECK: 1e02c0e2
+
+//V6_vnormamtw
+//Vd32.w=vnormamt(Vu32.w)
+v2.w=vnormamt(v0.w)
+//CHECK: 1e03c082
+
+//V6_vnormamth
+//Vd32.h=vnormamt(Vu32.h)
+v2.h=vnormamt(v0.h)
+//CHECK: 1e03c0a2
+
+//V6_vaddclbw
+//Vd32.w=vadd(vclb(Vu32.w),Vv32.w)
+v2.w=vadd(vclb(v0.w),v0.w)
+//CHECK: 1f00e022
+
+//V6_vaddclbh
+//Vd32.h=vadd(vclb(Vu32.h),Vv32.h)
+v2.h=vadd(vclb(v0.h),v0.h)
+//CHECK: 1f00e002
+
+//V6_vpopcounth
+//Vd32.h=vpopcount(Vu32.h)
+v2.h=vpopcount(v0.h)
+//CHECK: 1e02c0c2
+
+//V6_vhist
+//vhist
+vhist
+//CHECK: 1e00e080
+
+//V6_vhistq
+//vhist(Qv4)
+vhist(q0)
+//CHECK: 1e02e080
+
+//V6_vwhist256
+//vwhist256
+vwhist256
+//CHECK: 1e00e280
+
+//V6_vwhist256q
+//vwhist256(Qv4)
+vwhist256(q0)
+//CHECK: 1e02e280
+
+//V6_vwhist256_sat
+//vwhist256:sat
+vwhist256:sat
+//CHECK: 1e00e380
+
+//V6_vwhist256q_sat
+//vwhist256(Qv4):sat
+vwhist256(q0):sat
+//CHECK: 1e02e380
+
+//V6_vwhist128
+//vwhist128
+vwhist128
+//CHECK: 1e00e480
+
+//V6_vwhist128q
+//vwhist128(Qv4)
+vwhist128(q0)
+//CHECK: 1e02e480
+
+//V6_vwhist128m
+//vwhist128(#u1)
+vwhist128(#0x0)
+//CHECK: 1e00e680
+
+//V6_vwhist128qm
+//vwhist128(Qv4,#u1)
+vwhist128(q0,#0x0)
+//CHECK: 1e02e680
+
+//V6_vlutvvb
+//Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8)
+v2.b=vlut32(v0.b,v0.b,r0)
+//CHECK: 1b00e022
+
+//V6_vlutvvb_oracc
+//Vx32.b|=vlut32(Vu32.b,Vv32.b,Rt8)
+v6.b|=vlut32(v0.b,v0.b,r0)
+//CHECK: 1b00e0a6
+
+//V6_vlutvwh
+//Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8)
+v1:0.h=vlut16(v0.b,v0.h,r0)
+//CHECK: 1b00e0c0
+
+//V6_vlutvwh_oracc
+//Vxx32.h|=vlut16(Vu32.b,Vv32.h,Rt8)
+v1:0.h|=vlut16(v0.b,v0.h,r0)
+//CHECK: 1b00e0e0
+
+//V6_vlutvvbi
+//Vd32.b=vlut32(Vu32.b,Vv32.b,#u3)
+v2.b=vlut32(v0.b,v0.b,#0x0)
+//CHECK: 1e20c002
+
+//V6_vlutvvb_oracci
+//Vx32.b|=vlut32(Vu32.b,Vv32.b,#u3)
+v6.b|=vlut32(v0.b,v0.b,#0x0)
+//CHECK: 1cc0e006
+
+//V6_vlutvwhi
+//Vdd32.h=vlut16(Vu32.b,Vv32.h,#u3)
+v1:0.h=vlut16(v0.b,v0.h,#0x0)
+//CHECK: 1e60c000
+
+//V6_vlutvwh_oracci
+//Vxx32.h|=vlut16(Vu32.b,Vv32.h,#u3)
+v1:0.h|=vlut16(v0.b,v0.h,#0x0)
+//CHECK: 1ce0e000
+
+//V6_vlutvvb_nm
+//Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8):nomatch
+v2.b=vlut32(v0.b,v0.b,r0):nomatch
+//CHECK: 1800c062
+
+//V6_vlutvwh_nm
+//Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8):nomatch
+v1:0.h=vlut16(v0.b,v0.h,r0):nomatch
+//CHECK: 1800c080
+
+//V6_vmpahhsat
+//Vx32.h=vmpa(Vx32.h,Vu32.h,Rtt32.h):sat
+v6.h=vmpa(v6.h,v0.h,r1:0.h):sat
+//CHECK: 1980e086
+
+//V6_vmpauhuhsat
+//Vx32.h=vmpa(Vx32.h,Vu32.uh,Rtt32.uh):sat
+v6.h=vmpa(v6.h,v0.uh,r1:0.uh):sat
+//CHECK: 1980e0a6
+
+//V6_vmpsuhuhsat
+//Vx32.h=vmps(Vx32.h,Vu32.uh,Rtt32.uh):sat
+v6.h=vmps(v6.h,v0.uh,r1:0.uh):sat
+//CHECK: 1980e0c6
+
+//V6_vlut4
+//Vd32.h=vlut4(Vu32.uh,Rtt32.h)
+v2.h=vlut4(v0.uh,r1:0.h)
+//CHECK: 1960c082
+
+//V6_vmpyuhe
+//Vd32.uw=vmpye(Vu32.uh,Rt32.uh)
+v2.uw=vmpye(v0.uh,r0.uh)
+//CHECK: 1960c042
+
+//V6_vmpyuhe_acc
+//Vx32.uw+=vmpye(Vu32.uh,Rt32.uh)
+v6.uw+=vmpye(v0.uh,r0.uh)
+//CHECK: 1980e066
+
+//V6_vgathermw
+//vtmp.w=vgather(Rt32,Mu2,Vv32.w).w
+vtmp.w=vgather(r0,m0,v0.w).w
+//CHECK: 2f00c000
+
+//V6_vgathermh
+//vtmp.h=vgather(Rt32,Mu2,Vv32.h).h
+vtmp.h=vgather(r0,m0,v0.h).h
+//CHECK: 2f00c100
+
+//V6_vgathermhw
+//vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h
+vtmp.h=vgather(r0,m0,v1:0.w).h
+//CHECK: 2f00c200
+
+//V6_vgathermwq
+//if (Qs4) vtmp.w=vgather(Rt32,Mu2,Vv32.w).w
+if (q0) vtmp.w=vgather(r0,m0,v0.w).w
+//CHECK: 2f00c400
+
+//V6_vgathermhq
+//if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vv32.h).h
+if (q0) vtmp.h=vgather(r0,m0,v0.h).h
+//CHECK: 2f00c500
+
+//V6_vgathermhwq
+//if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h
+if (q0) vtmp.h=vgather(r0,m0,v1:0.w).h
+//CHECK: 2f00c600
+
+//V6_vscattermw
+//vscatter(Rt32,Mu2,Vv32.w).w=Vw32
+vscatter(r0,m0,v0.w).w=v0
+//CHECK: 2f20c000
+
+//V6_vscattermh
+//vscatter(Rt32,Mu2,Vv32.h).h=Vw32
+vscatter(r0,m0,v0.h).h=v0
+//CHECK: 2f20c020
+
+//V6_vscattermw_add
+//vscatter(Rt32,Mu2,Vv32.w).w+=Vw32
+vscatter(r0,m0,v0.w).w+=v0
+//CHECK: 2f20c080
+
+//V6_vscattermh_add
+//vscatter(Rt32,Mu2,Vv32.h).h+=Vw32
+vscatter(r0,m0,v0.h).h+=v0
+//CHECK: 2f20c0a0
+
+//V6_vscattermwq
+//if (Qs4) vscatter(Rt32,Mu2,Vv32.w).w=Vw32
+if (q0) vscatter(r0,m0,v0.w).w=v0
+//CHECK: 2f80c000
+
+//V6_vscattermhq
+//if (Qs4) vscatter(Rt32,Mu2,Vv32.h).h=Vw32
+if (q0) vscatter(r0,m0,v0.h).h=v0
+//CHECK: 2f80c080
+
+//V6_vscattermhw
+//vscatter(Rt32,Mu2,Vvv32.w).h=Vw32
+vscatter(r0,m0,v1:0.w).h=v0
+//CHECK: 2f20c040
+
+//V6_v6mpyvubs10_vxx
+//Vxx32.w+=v6mpy(Vuu32.ub,Vvv32.b,#u2):v
+v1:0.w+=v6mpy(v1:0.ub,v1:0.b,#0x0):v
+//CHECK: 1f20e000
+
+//V6_v6mpyhubs10_vxx
+//Vxx32.w+=v6mpy(Vuu32.ub,Vvv32.b,#u2):h
+v1:0.w+=v6mpy(v1:0.ub,v1:0.b,#0x0):h
+//CHECK: 1f20e080
+
+//V6_v6mpyvubs10
+//Vdd32.w=v6mpy(Vuu32.ub,Vvv32.b,#u2):v
+v1:0.w=v6mpy(v1:0.ub,v1:0.b,#0x0):v
+//CHECK: 1f40e000
+
+//V6_v6mpyhubs10
+//Vdd32.w=v6mpy(Vuu32.ub,Vvv32.b,#u2):h
+v1:0.w=v6mpy(v1:0.ub,v1:0.b,#0x0):h
+//CHECK: 1f40e080
+
+//V6_vfneg_f8
+//Vd32.f8=vfneg(Vu32.f8)
+v2.f8=vfneg(v0.f8)
+//CHECK: 1c66e0e2
+
+//V6_vabs_f8
+//Vd32.f8=vabs(Vu32.f8)
+v2.f8=vabs(v0.f8)
+//CHECK: 1c66e0c2
+
+//V6_vfmin_f8
+//Vd32.f8=vfmin(Vu32.f8,Vv32.f8)
+v2.f8=vfmin(v0.f8,v0.f8)
+//CHECK: 1c60e082
+
+//V6_vfmax_f8
+//Vd32.f8=vfmax(Vu32.f8,Vv32.f8)
+v2.f8=vfmax(v0.f8,v0.f8)
+//CHECK: 1c60e0a2
+
+//V6_vadd_hf_f8
+//Vdd32.hf=vadd(Vu32.f8,Vv32.f8)
+v1:0.hf=vadd(v0.f8,v0.f8)
+//CHECK: 1f80c080
+
+//V6_vsub_hf_f8
+//Vdd32.hf=vsub(Vu32.f8,Vv32.f8)
+v1:0.hf=vsub(v0.f8,v0.f8)
+//CHECK: 1f80c0a0
+
+//V6_vmpy_hf_f8
+//Vdd32.hf=vmpy(Vu32.f8,Vv32.f8)
+v1:0.hf=vmpy(v0.f8,v0.f8)
+//CHECK: 1f80c0c0
+
+//V6_vmpy_hf_f8_acc
+//Vxx32.hf+=vmpy(Vu32.f8,Vv32.f8)
+v1:0.hf+=vmpy(v0.f8,v0.f8)
+//CHECK: 1f80c0e0
+
+//V6_vcvt_hf_f8
+//Vdd32.hf=vcvt(Vu32.f8)
+v1:0.hf=vcvt(v0.f8)
+//CHECK: 1e05e0a0
+
+//V6_vcvt_f8_hf
+//Vd32.f8=vcvt(Vu32.hf,Vv32.hf)
+v2.f8=vcvt(v0.hf,v0.hf)
+//CHECK: 1fe0e042
+
+//V6_vmpy_sf_sf
+//Vd32.sf=vmpy(Vu32.sf,Vv32.sf)
+v2.sf=vmpy(v0.sf,v0.sf)
+//CHECK: 1f80e022
+
+//V6_vmpy_sf_hf
+//Vdd32.sf=vmpy(Vu32.hf,Vv32.hf)
+v1:0.sf=vmpy(v0.hf,v0.hf)
+//CHECK: 1f80e040
+
+//V6_vmpy_hf_hf
+//Vd32.hf=vmpy(Vu32.hf,Vv32.hf)
+v2.hf=vmpy(v0.hf,v0.hf)
+//CHECK: 1f80e062
+
+//V6_vdmpy_sf_hf
+//Vd32.sf=vdmpy(Vu32.hf,Vv32.hf)
+v2.sf=vdmpy(v0.hf,v0.hf)
+//CHECK: 1fa0e0c2
+
+//V6_vmpy_sf_hf_acc
+//Vxx32.sf+=vmpy(Vu32.hf,Vv32.hf)
+v1:0.sf+=vmpy(v0.hf,v0.hf)
+//CHECK: 1c40e020
+
+//V6_vdmpy_sf_hf_acc
+//Vx32.sf+=vdmpy(Vu32.hf,Vv32.hf)
+v6.sf+=vdmpy(v0.hf,v0.hf)
+//CHECK: 1c40e066
+
+//V6_vmpy_hf_hf_acc
+//Vx32.hf+=vmpy(Vu32.hf,Vv32.hf)
+v6.hf+=vmpy(v0.hf,v0.hf)
+//CHECK: 1c40e046
+
+//V6_vadd_sf_hf
+//Vdd32.sf=vadd(Vu32.hf,Vv32.hf)
+v1:0.sf=vadd(v0.hf,v0.hf)
+//CHECK: 1f80e080
+
+//V6_vsub_sf_hf
+//Vdd32.sf=vsub(Vu32.hf,Vv32.hf)
+v1:0.sf=vsub(v0.hf,v0.hf)
+//CHECK: 1f80e0a0
+
+//V6_vadd_sf_sf
+//Vd32.sf=vadd(Vu32.sf,Vv32.sf)
+v2.sf=vadd(v0.sf,v0.sf)
+//CHECK: 1f80e0c2
+
+//V6_vsub_sf_sf
+//Vd32.sf=vsub(Vu32.sf,Vv32.sf)
+v2.sf=vsub(v0.sf,v0.sf)
+//CHECK: 1f80e0e2
+
+//V6_vadd_hf_hf
+//Vd32.hf=vadd(Vu32.hf,Vv32.hf)
+v2.hf=vadd(v0.hf,v0.hf)
+//CHECK: 1fa0e0e2
+
+//V6_vsub_hf_hf
+//Vd32.hf=vsub(Vu32.hf,Vv32.hf)
+v2.hf=vsub(v0.hf,v0.hf)
+//CHECK: 1f60e002
+
+//V6_vcvt_hf_ub
+//Vdd32.hf=vcvt(Vu32.ub)
+v1:0.hf=vcvt(v0.ub)
+//CHECK: 1e04e020
+
+//V6_vcvt_hf_b
+//Vdd32.hf=vcvt(Vu32.b)
+v1:0.hf=vcvt(v0.b)
+//CHECK: 1e04e040
+
+//V6_vcvt2_hf_ub
+//Vdd32.hf=vcvt2(Vu32.ub)
+v1:0.hf=vcvt2(v0.ub)
+//CHECK: 1ed5e0e0
+
+//V6_vcvt2_hf_b
+//Vdd32.hf=vcvt2(Vu32.b)
+v1:0.hf=vcvt2(v0.b)
+//CHECK: 1ed5e0c0
+
+//V6_vcvt_sf_hf
+//Vdd32.sf=vcvt(Vu32.hf)
+v1:0.sf=vcvt(v0.hf)
+//CHECK: 1e04e080
+
+//V6_vcvt_hf_uh
+//Vd32.hf=vcvt(Vu32.uh)
+v2.hf=vcvt(v0.uh)
+//CHECK: 1e04e0a2
+
+//V6_vcvt_hf_h
+//Vd32.hf=vcvt(Vu32.h)
+v2.hf=vcvt(v0.h)
+//CHECK: 1e04e0e2
+
+//V6_vcvt_uh_hf
+//Vd32.uh=vcvt(Vu32.hf)
+v2.uh=vcvt(v0.hf)
+//CHECK: 1e05e002
+
+//V6_vcvt_h_hf
+//Vd32.h=vcvt(Vu32.hf)
+v2.h=vcvt(v0.hf)
+//CHECK: 1e06e002
+
+//V6_vcvt_hf_sf
+//Vd32.hf=vcvt(Vu32.sf,Vv32.sf)
+v2.hf=vcvt(v0.sf,v0.sf)
+//CHECK: 1f60e022
+
+//V6_vcvt_ub_hf
+//Vd32.ub=vcvt(Vu32.hf,Vv32.hf)
+v2.ub=vcvt(v0.hf,v0.hf)
+//CHECK: 1fc0e0a2
+
+//V6_vcvt_b_hf
+//Vd32.b=vcvt(Vu32.hf,Vv32.hf)
+v2.b=vcvt(v0.hf,v0.hf)
+//CHECK: 1fc0e0c2
+
+//V6_vcvt2_ub_hf
+//Vd32.ub=vcvt2(Vu32.hf,Vv32.hf)
+v2.ub=vcvt2(v0.hf,v0.hf)
+//CHECK: 1ac0e0e2
+
+//V6_vcvt2_b_hf
+//Vd32.b=vcvt2(Vu32.hf,Vv32.hf)
+v2.b=vcvt2(v0.hf,v0.hf)
+//CHECK: 1ac0e0c2
+
+//V6_vassign_fp
+//Vd32.w=vfmv(Vu32.w)
+v2.w=vfmv(v0.w)
+//CHECK: 1e06e022
+
+//V6_vfneg_hf
+//Vd32.hf=vfneg(Vu32.hf)
+v2.hf=vfneg(v0.hf)
+//CHECK: 1e06e042
+
+//V6_vfneg_sf
+//Vd32.sf=vfneg(Vu32.sf)
+v2.sf=vfneg(v0.sf)
+//CHECK: 1e06e062
+
+//V6_vabs_hf
+//Vd32.hf=vabs(Vu32.hf)
+v2.hf=vabs(v0.hf)
+//CHECK: 1e06e082
+
+//V6_vabs_sf
+//Vd32.sf=vabs(Vu32.sf)
+v2.sf=vabs(v0.sf)
+//CHECK: 1e06e0a2
+
+//V6_vfmin_hf
+//Vd32.hf=vfmin(Vu32.hf,Vv32.hf)
+v2.hf=vfmin(v0.hf,v0.hf)
+//CHECK: 1c60e002
+
+//V6_vfmin_sf
+//Vd32.sf=vfmin(Vu32.sf,Vv32.sf)
+v2.sf=vfmin(v0.sf,v0.sf)
+//CHECK: 1c60e022
+
+//V6_vfmax_hf
+//Vd32.hf=vfmax(Vu32.hf,Vv32.hf)
+v2.hf=vfmax(v0.hf,v0.hf)
+//CHECK: 1c60e042
+
+//V6_vfmax_sf
+//Vd32.sf=vfmax(Vu32.sf,Vv32.sf)
+v2.sf=vfmax(v0.sf,v0.sf)
+//CHECK: 1c60e062
+
+//V6_vadd_sf_bf
+//Vdd32.sf=vadd(Vu32.bf,Vv32.bf)
+v1:0.sf=vadd(v0.bf,v0.bf)
+//CHECK: 1d40e0c0
+
+//V6_vsub_sf_bf
+//Vdd32.sf=vsub(Vu32.bf,Vv32.bf)
+v1:0.sf=vsub(v0.bf,v0.bf)
+//CHECK: 1d40e0a0
+
+//V6_vmpy_sf_bf
+//Vdd32.sf=vmpy(Vu32.bf,Vv32.bf)
+v1:0.sf=vmpy(v0.bf,v0.bf)
+//CHECK: 1d40e080
+
+//V6_vmpy_sf_bf_acc
+//Vxx32.sf+=vmpy(Vu32.bf,Vv32.bf)
+v1:0.sf+=vmpy(v0.bf,v0.bf)
+//CHECK: 1d00e000
+
+//V6_vcvt_bf_sf
+//Vd32.bf=vcvt(Vu32.sf,Vv32.sf)
+v2.bf=vcvt(v0.sf,v0.sf)
+//CHECK: 1d40e062
+
+//V6_vmax_bf
+//Vd32.bf=vmax(Vu32.bf,Vv32.bf)
+v2.bf=vmax(v0.bf,v0.bf)
+//CHECK: 1d40e0e2
+
+//V6_vmin_bf
+//Vd32.bf=vmin(Vu32.bf,Vv32.bf)
+v2.bf=vmin(v0.bf,v0.bf)
+//CHECK: 1d40e002
+
+//V6_vscattermhwq
+//if (Qs4) vscatter(Rt32,Mu2,Vvv32.w).h=Vw32
+if (q0) vscatter(r0,m0,v1:0.w).h=v0
+//CHECK: 2fa0c000
+
+//V6_vscattermhw_add
+//vscatter(Rt32,Mu2,Vvv32.w).h+=Vw32
+vscatter(r0,m0,v1:0.w).h+=v0
+//CHECK: 2f20c0c0
+
+//V6_vprefixqb
+//Vd32.b=prefixsum(Qv4)
+v2.b=prefixsum(q0)
+//CHECK: 1e03e042
+
+//V6_vprefixqh
+//Vd32.h=prefixsum(Qv4)
+v2.h=prefixsum(q0)
+//CHECK: 1e03e142
+
+//V6_vprefixqw
+//Vd32.w=prefixsum(Qv4)
+v2.w=prefixsum(q0)
+//CHECK: 1e03e242



More information about the llvm-commits mailing list